你好:
我们在测试S32K314 BUSOFF的功能时,遇到一个问题。我们代码默认busoff 自恢复功能。然后为了实现手动快慢恢复效果,设置了一个函数,作为busoff 恢复调用。函数先设置模式 CAN_CS_Started。然后初始化邮箱内的数据内容为inactive,数据设置为0x08080000.这样的话,如果需要100ms busoff 恢复,那么在100ms任务中调用此函数,此函数会判断是否进入busoff,如果进入busoff状态,就会调用刚才的函数。
但是在测试过程中发现,当调用busoff的周期,较小于一定的CAN报文发送周期,会出现CAN报文直接停发。查看CAN_State_Error_Count,处于TX_passive 状态,不会再进入busoff。请问为什么CAN报文会停发?
解決済! 解決策の投稿を見る。
Hi@rujunzhou
1.我无法通过你的描述来定位问题的原因,你至少要提供基本的测试例程我们才能帮你分析原因。
2.快慢回复我不建议你这样去做,你应该关闭自动恢复,检查到bus-off event的时候,再开启自动回复,在t1时间内如果没有bus-off event事件产生则恢复成功,如若没有,再关闭自动恢复,等待若干时间再尝试打开自动恢复。
Hi,
请问你那有s32k3 busoff 恢复的相关代码供参考吗?