typedef union UB32
{
float val_float;
u32 val_u32;
u16 val_u16[2];
u8 val_u8[4];
struct
{
u8 bit0 : 1;
u8 bit1 : 1;
u8 bit2 : 1;
u8 bit3 : 1;
u8 bit4 : 1;
u8 bit5 : 1;
u8 bit6 : 1;
u8 bit7 : 1;
u8 bit8 : 1;
u8 bit9 : 1;
u8 bit10 : 1;
u8 bit11 : 1;
u8 bit12 : 1;
u8 bit13 : 1;
u8 bit14 : 1;
u8 bit15 : 1;
u8 bit16 : 1;
u8 bit17 : 1;
u8 bit18 : 1;
u8 bit19 : 1;
u8 bit20 : 1;
u8 bit21 : 1;
u8 bit22 : 1;
u8 bit23 : 1;
u8 bit24 : 1;
u8 bit25 : 1;
u8 bit26 : 1;
u8 bit27 : 1;
u8 bit28 : 1;
u8 bit29 : 1;
u8 bit30 : 1;
u8 bit31 : 1;
}Bits;
};
定义共同体变量
union UB32 ssTType; //传感器使能标志 及 触发类型 [10]:水位 [11]:柜门
可以使用宏定义
#define bPress bit1 //可燃
#define bGasEx bit10 //水位
最终效果是对float型变量的每一位进行
tpa.ssTType.Bits.bGasEx=1;
tpa.ssTType.Bits.bWater=1;
至此结束