周半梅 发表于 2025-3-10 08:35

STM32G431的CAN总线接收总是出错?

数据好像时断时续,是滤波器参数没设对,还是波特率的问题?

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

STM32G431的CAN时钟源通常为APB1时钟(默认80MHz),波特率由Prescaler、Time Quanta(Tq)和采样点位置共同决定

江河千里 发表于 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),且CANH和CANL信号线无短路/断路

远山寻你 发表于 2025-4-14 08:10

用示波器测量CANH和CANL的差分电压(正常为2V左右)

一秒落纱 发表于 2025-4-14 09:19

检查是否有毛刺或信号反射(长距离通信需加终端电阻)

光辉梦境 发表于 2025-4-14 10:30

确保已启用接收FIFO中断,并在回调函数中及时读取数据
页: [1]
查看完整版本: STM32G431的CAN总线接收总是出错?