最近在学CAN,有一个例程,用结构定义了一个CAN的数据类型,是这样定义的:
typedef struct
{
u8 DLC:4; //数据长度, bit0~bit3
u8 :2; //空数据, bit4~bit5
u8 RTR:1; //帧类型, bit6
u8 FF:1; //帧格式, bit7
u32 ID; //CAN ID
u8 DataBuffer[8]; //数据缓存
}CAN_DataDef;
CAN_DataDef CAN1_Tx;
CAN_DataDef CAN1_Rx[8];
我不明白的是 冒号 :后边的数字 比如 u8 DLC:4; 这一句,冒号后边的那个4 是否有实际意义?这个4 不像是注释,我看书上是这样定义结构的:
比如:
typedef struct
{
u8 DLC; //数据长度, bit0~bit3
u8 RTR; //帧类型, bit6
u8 FF; //帧格式, bit7
u32 ID; //CAN ID
u8 DataBuffer[8]; //数据缓存
}CAN_DataDef;
也许看Keil C的帮助可以解决,但我的英文太拉,看不懂,另外求一本能完全介绍Keil C的书,不知道有没有这样的书。
再就是对 u8 :2; //空数据, bit4~bit5 这一行不理解,在B站上看过一个视频,说是空数据对CAN的传输就很有意义了?大意如此,我没有理解,所以就没有记得很扎实。谢谢大家。
|