[技术问答] M453单片机的CAN中断接力发送时发送报文数量丢失

[复制链接]
189|5
 楼主 | 2019-7-9 20:50 | 显示全部楼层 |阅读模式
1、我使用新唐M453单片机,使用CAN1进行实验,将CAN1的后4个报文缓存RAM做为发送缓冲区来使用。通过线程启动报文的发送,在中断中通过查询发送请求寄存器来判断哪个发送缓冲区空闲,再进行发送处理。发送相关函数使用SDK。例如我发送30个不同ID的报文,通过CAN盒获取只收到4个标识符,发送间隔有100ms,250ms,500ms,1s。
2、目前猜想是没发送出去的报文是由于该报文处于准备发送状态,但是在发送过程中由于我使用查询发送请求寄存器来判断是否发送完成,该步骤可能有问题,导致待发送出去的报文被后来更新的报文覆盖了。
3、请问是否还有其他什么原因导致问题出现的。

使用特权

评论回复
| 2019-7-9 21:05 | 显示全部楼层
你发送中间添加上延时试试看,如果正常了, 你的推测就正确

使用特权

评论回复
| 2019-7-15 09:05 | 显示全部楼层
调试好了没

使用特权

评论回复
| 2019-7-15 17:59 | 显示全部楼层
莫非解决了,上面的那种方式?

使用特权

评论回复
| 2019-7-21 18:18 | 显示全部楼层
CAN的这个跑参考是不是丢失,如果不是,软件问题。如果是,那应该硬件问题。

使用特权

评论回复
| 2019-7-21 21:42 | 显示全部楼层
查的是什么问题

使用特权

评论回复
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

在线客服 快速回复 返回顶部 返回列表