#include <stdio.h>
typedef union
{
unsigned char byte;
struct
{
unsigned char low : 4;
unsigned char high: 4;
} bits;
}BCD;
volatile BCD bcd_buff;
#define bcd_buff_low bcd_buff.bits.low
#define bcd_buff_high bcd_buff.bits.high
#define bcd_buff_all bcd_buff.byte
int main(void)
{
bcd_buff_all=0x53; //整体赋值
bcd_buff_high=5;
bcd_buff_low=3;
printf("0x%x\n",bcd_buff_all); //整体读取
printf("%d\n",bcd_buff_low); //低四位的读取
return 0;
}
struct里可以是数组,n个位
byte可以是u8,u16,u32
应用:
1.发送float
2.读取ADC
3.高低四位读写
4.bit读写(节省内存)