CAN分帧接收实现

该版本程序实现了上电后先发送MACID检测功能,如果网络上有应答。则一直进行死循环,直到用户更改了本机的ID地址 才可以跳出循环体。

本单片机设置为双滤波 ,使目标地址为0X1F

 

 

实现了建立连接命令

发送 帧 ID号 是0X0023E4FE 数据部分是 00 ee 20 (20 对应十进制32)

则单片机返回帧 帧ID号 0x03e034ee 数据部分 是 00 01 02 03 04

同时数码管可以看见 从0 增加到 31

 

建立连接命令以后,如果在连接时间内 你再次发送连接命令,则单片机会上传错误指示,指示当前不能再进行连接。

 

写数据指令。。 你通过分帧写 一组数据 数据的字节总数小于7

建立连接以后,发送帧的ID号 为 0X0023E180 数据 为 00 01 02 03

表示写3个字节 分别是 01 02 03

用串口调试助手显示出来

 

设置的字节数 大于7 小于等于 14 这个 现在 还有问题

 

设置的数据字节总数 大于14 小于21

 

 

设置的字数 大于 14 小于 30 我尝试用分帧处理 现在还不成功

 

 

 

 

 

 

 

 

现在 读数据

我在软件中设置了一个数组 read_rec [30]

 

通过CAN总线 ,将这个数组中的元素读出来,

我只读一个数据

发送读数据的帧 ID号 0X0023E2A0 数据部分 为 00 01

 

我读取 15个数据 00 0F

 

百度网盘

posted @ 2020-01-20 16:50  STEVEN-SUN  阅读(916)  评论(0编辑  收藏  举报