当前位置: 代码迷 >> 驱动开发 >> can协议 发送自动重传模式 深入的有关问题 STM32
  详细解决方案

can协议 发送自动重传模式 深入的有关问题 STM32

热度:532   发布时间:2016-04-28 10:18:02.0
can协议 发送自动重传模式 深入的问题 STM32
最近,在调试STM32的can总线,遇到一个问题,can发送报文时,有一个自动重传模式。也就是can发送完一帧报文后,如果因为ID竞争失败或者出错导致发送失败后,如果使能了自动重传,它会接着进行重新发送该报文。现在问题来了,如果发送邮箱有空邮箱,也就是可以发送第2帧数据,那么在自动重传中的第一帧数据,和后来过来的第2帧数据哪个先发送呢??也就是两者哪个先被发送到(因为是同一个发送节点,他们的ID标识符优先级又相同,而且我发送的优先级模式选了,由发送请求的顺序来决定,现在关键是不知道两者谁先来到的)。

------解决方案--------------------
首先纠正你一个错误,不是CAN发送完一帧报文后,出现失败,出现失败的话那一帧报文并未发送完,如果自动重传使能,并且“发送请求次序决定”也使能的情况下,第一帧数据发送成功后才会发送第二帧数据。