已解决:RTR==1是远程帧,远程帧数据段是无效的??下面数据段还是定义8个字节,
本帖最后由 380091044 于 2024-4-28 16:14 编辑CAN总线标准帧收发测试例程中:
RTR==1是远程帧,远程帧数据段是无效的??下面数据段还是定义8个字节,这是怎么理解的?
/*************本地变量声明 **************/
typedef struct
{
u8 DLC:4; //数据长度, bit0~bit3
u8 :2; //空数据, bit4~bit5
u8 RTR:1; //帧类型, bit6 这里RTR==1是远程帧,远程帧数据段是无效的??
u8 FF:1; //帧格式, bit7
u32 ID; //CAN ID
u8 DataBuffer;//数据缓存;看上面问号处,这里数据段还是8个字节?
}CAN_DataDef;
我看错了,其实是占1bit,不是RTR==1;理解有误造成的。 这不是赋值,而是结构体位段定义。
DLC:4表示DLC变量占用4bit空间
RTR:1表示RTR变量占用1bit空间 乘风飞扬 发表于 2024-4-28 16:18
这不是赋值,而是结构体位段定义。
DLC:4表示DLC变量占用4bit空间
RTR:1表示RTR变量占用1bit空间 ...
谢谢老师指点
页:
[1]