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