再来请教 CAN :数据 会重发 一般是怎么引起的?

2020-01-01 17:56发布


如图

2019-09-26_183315.png (5.1 KB, 下载次数: 0) 下载附件 2019-9-26 18:34 上传

蓝 {MOD} 帧在前面已经发过了,结果又重新传了一次,DATA5是一个计数器,发一次加1

这样排除了软件中重新调用的可能;

===

发送方式用的是 自动重发

以下是发送函数
                MailBox =  CAN_Transmit(CANx, &CanToCanTxMsg[CanTxMsgOut].CanTransStruc);
                if(MailBox==CAN_TxStatus_NoMailBox)
                {
                        return;//break;
                }
       
                i = 0;
                while((CAN_TransmitStatus(CANx, MailBox)==CAN_TxStatus_Failed)&&(i<0XFFF)) i++;
                if(i >= 0XFFF)
                {
                        return;
                }

=====
想到一种可能性,不知道有多大
假设开始时在邮箱1中发送不成功,下次发送转到邮箱2中发送

过了一会儿 邮箱1又发送成功,这样2个邮箱都发送了才出现偶尔发送2次的情况
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。