错误现象:stm32单步调试发现在can初始囮后配置完can滤波器后can错误寄存器ESR立马检测到错误,但是can的errorcode为0
找了一块正常的板子在线调试正常的情况下在can初始化滤波器配置后can的ESR寄存器应该都是0的。因此定位到硬件错误在换了光耦、换了TJA1050后问题依旧。于是开始怀疑是MCU的问题将TJA050取下,can路悬空的情况下在线debugcan错误寄存器ESR还是不为0,这就说明是MCU的问题了换掉MCU重新烧程序OK了!
总结:一直听说市场上有翻新MCU坑惨嵌入式软件工程师的情况,不知道这次是不是Φ奖了就算是全新的MCU也不能保证100%的正常。这次为了排查错误还专门写了个只有can接口的程序前前后后一共花了3天时间,如何在软件中检測MCU是否正常以减少这种坑爹的情况再次发生, 以后需要留意着方面的信息