打印
[STM32F1]

CAN发送丢帧现象如何解决

[复制链接]
1619|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
1156807738|  楼主 | 2020-11-7 11:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 1156807738 于 2020-11-7 14:04 编辑

大家好,因为需要发送的数据量比较大,有定时发的,有接收数据后响应发的,目前遇到CAN发送丢帧的现象,
发送前先检查发送邮箱是否有空闲,但是好像不起作用,适当加了一些发送帧的的延时,有一些改善,但还是有丢帧现象(我写了一个canopen的SDO分段传输),每次传输都8字节,请问大家一般都是怎么解决这种发送丢帧问题的,
我开启了自动重传,但好像还有些问题,请各位前辈给一些指导建议,感谢

使用特权

评论回复
沙发
zchong| | 2020-11-7 16:14 | 只看该作者
会不会是信号质量问题,降低波特率试试呢

使用特权

评论回复
评论
1156807738 2020-11-9 08:41 回复TA
50K的波特率,因该很低了 
板凳
1156807738|  楼主 | 2020-11-9 08:40 | 只看该作者
我的发送流程是,(2ms的轮询发送)
1.检查邮箱TxMail !=0,然后调用CAN发送函数,如果等于0,就等下次轮询再判断
数据是一发一回(SDO分段传输),有时候就出现丢了一帧ID的数据

使用特权

评论回复
地板
hufuju| | 2020-11-10 09:03 | 只看该作者
50k的波特率是不会丢帧的,估计是数据覆盖了,一个是发送覆盖;一个是接收覆盖

使用特权

评论回复
评论
1156807738 2020-11-10 10:19 回复TA
应该不会吧,我接收有20个数据的缓冲区,每次轮询,去读缓冲区的数据,然后发送响应的数据 
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

40

帖子

0

粉丝