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_flag==1)不可以接收,即不可以调用can_sync(); ④ 发送: l 用户使用CAN_TX();来发送一帧数据; l 标识符,数据长度,数据分别通过TX_arbid,TX_LEN,TX_DATA写入。 l 注:接收时(RXing_flag==1)不能发送数据。 5、 demo实测:每接收到一帧数据,就将接收到的数据发送出去。 接收到一帧数据: 发送一帧数据:
|