421 IO模拟can通信
1、 测试代码:包含外部晶振16M及8M版本。
2、 连线:PA5–CAN_TX;PA4—CAN_RX。(外接3.3V电平CAN收发器)。
3、 Demo功能:
–波特率125K(目前发送可支持500K,接收仅支持125K)。
–应答错误标志:ACK_error
–同一时间只能收/只能发:用户通过判断RXing_flag(正在接收标志)和TXing_flag(正在发送标志)来确保不在同一时间收发。
–目前只支持标准帧
4、 Demo测试说明:
① can_init(); --初始化CAN
② can_baud --通过设置can_baud 来设置CAN波特率。
③ 接收:
l 使用can_sync(); --等待CAN同步(14bit的时间),然后等待接收数据。
l 收到数据后,frame_done被置1;收到的标识符,数据长度,数据分别存在RX_arbid,RX_LEN,RX_DATA中。
l 用户将frame_done清0,并使用can_crc函数进行CRC校验,若校验通过则可以使用收到的数据。
l 注:发送时(TXing_flag1)不可以接收,即不可以调用can_sync();
④ 发送:
l 用户使用CAN_TX();来发送一帧数据;
l 标识符,数据长度,数据分别通过TX_arbid,TX_LEN,TX_DATA写入。
l 注:接收时(RXing_flag1)不能发送数据。
5、 demo实测:每接收到一帧数据,就将接收到的数据发送出去。
接收到一帧数据:
发送一帧数据:
具体源代码获取可参考如下路径:
https://bbs.21ic.com/icview-3064220-1-1.html