STM32单片机CAN通讯连续发送多包数据,发生丢包现象
·
使用例程连续发送两三包数据时没有问题,发送多包数据时,发现丢包现象;
例程代码如下:
while((CAN_TransmitStatus(CAN1, mbox)==CAN_TxStatus_Failed)&&(m<0XFFF))m++; //等待发送结束
if(m>=0XFFF)
{return 1;}
m = 0;
CAN_TxStatus_Failed :状态标志位,不足以判断发送完成,当发送多个数据包时,就会产生问题,修改代码如下:
while(1)
{
if(CAN_TransmitStatus(CAN1, mbox)==CAN_TxStatus_Ok)
{
break;
}
else
{
m++;
if(m>=0XFFF)
{return 1;}
}
}
m = 0;
改成 CAN_TxStatus_Ok 发送成功标志位后,可以连续发送多包数据
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)