[STM32G4] STM32G431的CAN总线接收总是出错?

[复制链接]
1221|20
 楼主| 周半梅 发表于 2025-3-10 08:35 | 显示全部楼层 |阅读模式
数据好像时断时续,是滤波器参数没设对,还是波特率的问题?

评论

80% 波特率没算对,因为有数据和仲裁两种。 还有当终端多了以后才知道终端电阻更可靠。 调试时打开分析仪的终端电阻就可以了。  发表于 2025-4-14 08:29
powerantone 发表于 2025-3-10 16:13 | 显示全部楼层
如果滤波器参数设置不正确,如标识符不匹配、屏蔽位设置错误等,都可能导致无法正确接收预期的报文。
stormwind123 发表于 2025-3-10 17:00 | 显示全部楼层
用CAN分析仪或示波器等工具监控CAN总线上的报文,确保发送的报文符合预期的格式和内容。
probedog 发表于 2025-3-10 18:03 | 显示全部楼层
CAN总线通信需要双方以相同的波特率进行通信。如果STM32G431的CAN波特率设置与通信对方不匹配,将导致无法正常接收数据。
classroom 发表于 2025-3-10 18:20 | 显示全部楼层
用示波器测一下CAN总线上的波特率看看是否与设置的波特率一致。
laocuo1142 发表于 2025-3-10 21:00 | 显示全部楼层
也可能是引脚连接有误。
flycamelaaa 发表于 2025-3-10 21:30 | 显示全部楼层
检查终端电阻是否正确安装,以及总线长度和阻抗是否匹配。
powerantone 发表于 2025-3-10 21:56 | 显示全部楼层
CAN总线的初始化代码是否正确无误,包括中断配置、错误处理等。
stormwind123 发表于 2025-3-10 22:09 | 显示全部楼层
检查CAN总线附近是否存在潜在的电磁干扰源,如高频信号线、大功率设备等。
probedog 发表于 2025-3-10 23:00 | 显示全部楼层
可能是程序逻辑问题
暖了夏天蓝了海 发表于 2025-4-14 01:09 | 显示全部楼层
STM32G431CAN时钟源通常为APB1时钟(默认80MHz),波特率由PrescalerTime QuantaTq)和采样点位置共同决定

江河千里 发表于 2025-4-14 02:34 | 显示全部楼层
抓取CAN总线波形,检查实际波特率是否与配置一致

淡漠安然 发表于 2025-4-14 03:35 | 显示全部楼层
终端电阻,确保总线的两端接有120Ω终端电阻

别乱了阵脚 发表于 2025-4-14 04:42 | 显示全部楼层
滤波器未启用导致接收所有报文(可能混杂噪声)

三生万物 发表于 2025-4-14 05:38 | 显示全部楼层
ID掩码错误,滤波器未正确匹配目标ID

冰春彩落下 发表于 2025-4-14 06:25 | 显示全部楼层
临时禁用滤波器(设置FilterActivation = DISABLE),观察是否仍存在数据丢失

夜阑风雨 发表于 2025-4-14 07:37 | 显示全部楼层
确认使用的收发器(如TJA1050)已正确供电(3.3V/5V),且CANHCANL信号线无短路/断路

远山寻你 发表于 2025-4-14 08:10 | 显示全部楼层
用示波器测量CANHCANL的差分电压(正常为2V左右)

一秒落纱 发表于 2025-4-14 09:19 | 显示全部楼层
检查是否有毛刺或信号反射(长距离通信需加终端电阻)

光辉梦境 发表于 2025-4-14 10:30 | 显示全部楼层
确保已启用接收FIFO中断,并在回调函数中及时读取数据

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

本版积分规则

177

主题

6238

帖子

1

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