[STM32F0] 请教当CAN接口(节点)拔掉再插上CAN发送死掉的问题

[复制链接]
2647|5
 楼主| qq792368480 发表于 2015-8-12 23:10 | 显示全部楼层 |阅读模式
MCU用的是F0系列的072,工程是用CUBEMX生成的。
问题:我在MAIN大循环里隔一段时间就发一帧数据(发送正常),但CAN接口(节点)一旦拔掉之后再接上主循环就死掉了,其他中断还依旧正常,还能进入CAN接收中断,比如CAN接收中断接收一帧数据再回发是正常的,就是主循环好似被卡住了。
猜测是一直进入CAN错误中断,但我也采取了一旦触发错误中断就停止主循环发数据操作,
并重新初始化CAN,但重新再接上CAN接口(节点),主循环还是卡住。
不知道如何解决,这个问题很急很致命,不知道有没人遇到这种情况,知道的帮忙一下,谢谢!
 楼主| qq792368480 发表于 2015-8-13 11:11 | 显示全部楼层
ABOM: 自动离线(Bus-Off)管理
该位决定CAN硬件在什么条件下可以退出离线状态。
0: 离线状态的退出是在,软件对CAN_MCR寄存器的INRQ位进行置1随后清0后,一旦硬件检测到128次11位连续的隐性位,就退出离线状态;
1: 一旦硬件检测到128次11位连续的隐性位,自动退出离线状态。

解决方法:
Pcan.Init.ABOM = ENABLE;//使能自动离线
amanda_s 发表于 2015-8-13 14:05 | 显示全部楼层
楼主问题是已经自己搞定了?
后面是解决办法?
UBC-Jason 发表于 2015-8-13 15:37 | 显示全部楼层
请问楼主用的是STM32F072C8T6么?有问题可以Q我,395877987
aundry 发表于 2015-8-14 19:16 | 显示全部楼层
当只剩下你自己一个节点的时候,CAN发送出错,达到128个错误之后,会自动离线
只有设置自动恢复,或者从新初始化进入Normal状态才可以
598330983 发表于 2015-8-14 22:13 | 显示全部楼层
CAN用哪儿了,不知道楼主要搞什么项目。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

15

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部