使用例程连续发送两三包数据时没有问题,发送多包数据时,发现丢包现象;
例程代码如下:
while((CAN_TransmitStatus(CAN1, mbox)==CAN_TxStatus_Failed)&&(m<0XFFF))m++; //等待发送结束
if(m>=0XFFF)
{return 1;}
m = 0;
CAN_TxStatus_Failed :状态标志位,不足以判断发送完成,当发送多个数据包时,就会产生问题,修改代码如下:文章来源:https://www.toymoban.com/news/detail-560719.html
while(1)
{
if(CAN_TransmitStatus(CAN1, mbox)==CAN_TxStatus_Ok)
{
break;
}
else
{
m++;
if(m>=0XFFF)
{return 1;}
}
}
m = 0;
改成 CAN_TxStatus_Ok 发送成功标志位后,可以连续发送多包数据文章来源地址https://www.toymoban.com/news/detail-560719.html
到了这里,关于STM32单片机CAN通讯连续发送多包数据,发生丢包现象的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!