分享一个 CAN总线发送一个字符串(超过8字节的) 的方法

2019-12-10 18:18发布

本帖最后由 零妖 于 2018-7-13 14:06 编辑

根据CAN通讯协议的约束,一帧CAN报文可以发送8个以内的数据。

如果你的应用场合,需要发送一个字符串咋办?

很少有谁的通讯协议正好是8个字节的。

经过零妖实践,写了一个CAN发送字符串的子函数。

Snipaste_2018-07-13_13-57-38.jpg (146.41 KB, 下载次数: 0) 下载附件 2018-7-13 14:03 上传
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
30条回答
零妖
2019-12-12 14:19
针对各路高手提出的问题,我非常感谢,否则自己会掉坑!
目前感觉非常高效的解决办法是,在帧ID上做文章,长数据分包发送,可以确保主机收到的数据可靠性,而且有没有丢包也能知道,这个我再找更多的资料,实践一下。再次感谢高手。

说一下目前想用CAN解决的问题。
1,设计了一个简单的通讯协议,挂在总线上的设备只有一个是“主机”。
2,这个“主机”需要哪个设备的数据,会发送一个字符串“Read”给对应的ID。这个是遇到的实际问题中通信协议约定的,其实可以发送远程帧来解决的,不过没有那么用。
3,当所谓的“从机”收到这个“Read”后,就会回复一下,长度不定,比如是“12345CDDSSF234”这些字符。

我的想法比较简单,所以写了一个那样的子函数,用来发送字符串。


一周热门 更多>