|
最近在學(xué)CAN,有一個例程,用結(jié)構(gòu)定義了一個CAN的數(shù)據(jù)類型,是這樣定義的:
typedef struct
{
u8 DLC:4; //數(shù)據(jù)長度, bit0~bit3
u8 :2; //空數(shù)據(jù), bit4~bit5
u8 RTR:1; //幀類型, bit6
u8 FF:1; //幀格式, bit7
u32 ID; //CAN ID
u8 DataBuffer[8]; //數(shù)據(jù)緩存
}CAN_DataDef;
CAN_DataDef CAN1_Tx;
CAN_DataDef CAN1_Rx[8];
我不明白的是 冒號 :后邊的數(shù)字 比如 u8 DLC:4; 這一句,冒號后邊的那個4 是否有實際意義?這個4 不像是注釋,我看書上是這樣定義結(jié)構(gòu)的:
比如:
typedef struct
{
u8 DLC; //數(shù)據(jù)長度, bit0~bit3
u8 RTR; //幀類型, bit6
u8 FF; //幀格式, bit7
u32 ID; //CAN ID
u8 DataBuffer[8]; //數(shù)據(jù)緩存
}CAN_DataDef;
也許看Keil C的幫助可以解決,但我的英文太拉,看不懂,另外求一本能完全介紹Keil C的書,不知道有沒有這樣的書。
再就是對 u8 :2; //空數(shù)據(jù), bit4~bit5 這一行不理解,在B站上看過一個視頻,說是空數(shù)據(jù)對CAN的傳輸就很有意義了?大意如此,我沒有理解,所以就沒有記得很扎實。謝謝大家。
|
|