stm32can发送错误计数TEC=0xff?

gaoli.85   2010-9-13 18:25 楼主
大家好,我使用stm32can初始化时是,正常模式,发送不成功就重新发送。
当其他节点的发送数据量较小时,系统工作正常。
但是其他节点数据量大,stm32就发送不出去了,debug发现,发送邮箱3个都是满的,邮箱0出现CAN_TSR的TERR0被置位。同时CAN的Error Counter中TEC=0xff,但是LEC中却显示 No Error,在这个过程中,stm32居然能正常接收数据?却一直不能正常发送数据,即便是总线空闲。

真是奇怪,看了下,BOFF,EPVF,EWGF都被置位了。
我是否需要将这些被置位的清零,同时将TEC计数清零,来恢复can节点。
这个如何办那

回复评论 (6)

                                 我需要系统在出现tec计数超值的情况下,仍然继续发送数据,要不然会导致其他节点工作不正常
点赞  2010-9-13 18:28
                                 可以尝试着通过APB来复位CAN 模块
点赞  2010-9-14 14:25
                                 APB?怎么复位,我发现那个计数模块不能清零,错误中断无法消除!
点赞  2010-9-14 15:35
试试:
RCC_APB1PeriphResetCmd(RCC_APB1Periph_CAN1, ENABLE);
RCC_APB1PeriphResetCmd(RCC_APB1Periph_CAN1, DISABLE);
点赞  2010-9-14 17:01
                                 楼主可以试试,这个方案可行
点赞  2010-9-14 18:04
楼主 请问你最后解决了吗 我也遇到这个问题了
点赞  2019-1-2 18:25
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复