[STM32G4] CAN通信中偶尔收不到帧,怀疑是滤波器设置不对

[复制链接]
178|13
万图 发表于 2025-10-9 07:28 | 显示全部楼层 |阅读模式
CAN通信测试时,发现偶尔丢帧。总线波形正常,别的节点都能收,但这块板子偶尔就是不响应。抓波形看帧确实来了,MCU没进接收中断。怀疑滤波器配置有问题,但看代码又没发现明显错误。
Clyde011 发表于 2025-10-9 07:32 | 显示全部楼层
你如果用的是双滤波器模式,试试只开一个先测。
公羊子丹 发表于 2025-10-9 07:33 | 显示全部楼层
我之前也是这样,结果发现ID范围设置成单滤波模式了。
周半梅 发表于 2025-10-9 07:34 | 显示全部楼层
你试试关掉所有过滤器看看能不能收到。
帛灿灿 发表于 2025-10-9 07:35 | 显示全部楼层
有时滤波配置顺序不对,会导致寄存器没生效。
童雨竹 发表于 2025-10-9 07:36 | 显示全部楼层
我印象里FDCAN的寄存器写完要等同步完成。
 楼主| 万图 发表于 2025-10-9 07:37 | 显示全部楼层
可能是FIFO溢出导致后面的帧被丢。
Wordsworth 发表于 2025-10-9 07:37 | 显示全部楼层
我遇过一次是因为时钟源不一致导致同步错误。
Bblythe 发表于 2025-10-9 07:38 | 显示全部楼层
你有检查仲裁段波特率匹配吗?
Pulitzer 发表于 2025-10-9 07:39 | 显示全部楼层
滤波表写错一位都会收不到,建议打印寄存器看看。
Uriah 发表于 2025-10-9 07:41 | 显示全部楼层
有时HAL函数封装不太直观,裸写寄存器更好控制。
flycamelaaa 发表于 2025-10-9 15:03 | 显示全部楼层
可能是滤波器配置问题。
classroom 发表于 2025-10-9 15:45 | 显示全部楼层
更新升级MCU固件或CAN。
stormwind123 发表于 2025-10-9 15:47 | 显示全部楼层
在系统时钟初始化后添加延时,时钟稳定后再初始化CAN。
jcky001 发表于 2025-10-9 16:04 | 显示全部楼层
中断优先级冲突?
cr315 发表于 2025-10-9 16:41 | 显示全部楼层
MCU坏了?
onlycook 发表于 2025-10-9 17:05 | 显示全部楼层
逻辑分析仪抓取中断触发时序看是否被其他中断延迟。
powerantone 发表于 2025-10-9 19:16 | 显示全部楼层
可能和硬件初始化时序错误有关吧
probedog 发表于 2025-10-9 19:56 | 显示全部楼层
系统时钟未稳定时初始化CAN外设导致的?
七毛钱 发表于 2025-10-9 20:18 | 显示全部楼层
将CAN接收中断服务例程设为最高优先级。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

173

主题

6205

帖子

1

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