前阵子把cubemx升级到5.10了,顺便把F1的HAL库也升级到1.7.0了,结果can部分改动挺大的,can发送总是失败。 于是发了个帖子求助,得到朋友们的帮助,解决了。这是当时的帖子:https://www.stmcu.org.cn/module/forum/thread-619585-1-1.html 当时的解决办法是,查询发送邮箱的状态,等到有空的发送邮箱才进行发送。
现在又遇到了问题,有一次无意中can总线上直接了我做的这一块板,结果过一段时间后看门狗复位了。发现好像是在发送那里死等了。 而总线上接上其它can设备,和我这款板子通讯的话,倒是正常,不会看门狗复位。 试了几次,貌似总线上如有有其它can设备的话,就能正常发送。 请教,这个问题出现的缘由及解决办法。 |
建议你再加个队列,配合队列来发送
点评
评分
查看全部评分
在周立功CAN盒子上就是CAN打开失败。
评分
查看全部评分
评分
查看全部评分
谢谢,是个办法。
另,超时后如何操作?清发送邮箱?
评分
查看全部评分
超时以后,此帧被丢弃,继续执行后面的程序,或者下一次发送,设置几十毫秒的超时,我在实际运用中,总线最忙的时候顶多10ms也发送出去了。根据实际情况调整这个超时时间
评分
查看全部评分
三个邮箱都满了是会一直卡住嘛?