硬汉嵌入式论坛

 找回密码
 立即注册
查看: 288|回复: 5
收起左侧

[CAN/FDCAN] can热插拔问题

[复制链接]

5

主题

11

回帖

26

积分

新手上路

积分
26
发表于 2025-5-14 20:51:57 来自手机 | 显示全部楼层 |阅读模式
can在发数据的时候把线拔掉再插上,数据没有接着发,这个应该咋处理呀,自动重发也使能了
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
116230
QQ
发表于 2025-5-15 06:34:59 | 显示全部楼层
can外设复位初始化试试
回复

使用道具 举报

6

主题

269

回帖

287

积分

高级会员

积分
287
发表于 2025-5-15 08:18:15 | 显示全部楼层
那就是自动重发没使上,我用的低端的这样操作都没有问题
回复

使用道具 举报

5

主题

11

回帖

26

积分

新手上路

积分
26
 楼主| 发表于 2025-5-15 11:12:00 | 显示全部楼层
eric2013 发表于 2025-5-15 06:34
can外设复位初始化试试

重新上电就正常了,就是不清楚啥时候进行外设复位初始化
尝试使能了HAL_CAN_ActivateNotification(&hcan, CAN_IT_ERROR_WARNING | CAN_IT_ERROR_PASSIVE | CAN_IT_BUSOFF);但是can的错误中断回调一直进不去
回复

使用道具 举报

4

主题

21

回帖

33

积分

新手上路

积分
33
发表于 2025-5-15 11:52:01 | 显示全部楼层
定时检测一下状态标志位,一旦检测到错误,立即复位CAN外设就没有问题了。不会影响到总线的
回复

使用道具 举报

0

主题

7

回帖

7

积分

新手上路

积分
7
发表于 2025-5-15 17:59:57 | 显示全部楼层
如果你拔掉,can发送不出去,会触发can的noack错误,这种情况canip一般都会实现重发的操作的。总线上你可以抓下波形,会有重发的信号的。
noack错误会累加tx的error count,累加到128就不继续累加了,也不会进入busoff状态。
你插上如果发送成功,error count累减的。
你重新上下电,重新初始化就能正常的话,说明你的can进入的stop之类的状态,重新上下电将其状态机复位了。
但是理论上can的noack错误是不需要将其置为stop状态的,你这个现象感觉不太对。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-6-11 05:50 , Processed in 0.526317 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表