在发送或接收报文时,需要往发送邮箱中写入报文信息或从接收FIFO 中读取报文信息,利用N32标准库的发送及接收结构体可以方便地完成这样的工作,它们的定义见代码清单: CAN发送结构体 typedef struct { uint32_t StdId; /*存储报文的标准标识符11 位,0-0x7FF. */ uint32_t ExtId; /*存储报文的扩展标识符29 位,0-0x1FFFFFFF. */ uint8_t IDE; /*存储IDE 扩展标志 */ uint8_t RTR; /*存储RTR 远程帧标志*/ uint8_t DLC; /*存储报文数据段的长度,0-8 */ uint8_t Data[8]; /*存储报文数据段的内容 */ } CanTxMessage; CAN接收结构体 typedef struct { uint32_t StdId; /*存储了报文的标准标识符11 位,0-0x7FF. */ uint32_t ExtId; /*存储了报文的扩展标识符29 位,0-0x1FFFFFFF. */ uint8_t IDE; /*存储了IDE 扩展标志 */ uint8_t RTR; /*存储了RTR 远程帧标志*/ uint8_t DLC; /*存储了报文数据段的长度,0-8 */ uint8_t Data[8]; /*存储了报文数据段的内容 */ uint8_t FMI; /*存储了 本报文是由经过筛选器存储进FIFO 的,0-0xFF */
} CanRxMessage; 发送结构体与接收结构体是类似的,只是接收结构体多了一个FMI 成员,说明如下:
|