[STM32F7] CAN 总线通信无法正常工作

[复制链接]
376|15
石榴大王 发表于 2025-10-24 08:42 | 显示全部楼层 |阅读模式
STM32 F7 的HAL库 CAN 总线通信无法正常工作。我按照hall_CAN.c 说明的所有步骤操作。在 CubeIDE 中,将预分频器设置为 24,两个时间份额均设置为 4 倍。的波特率为 250000 b/s。
我使用了两块相同的开发板(Nucleo 746ZG)和 CAN 总线收发器 MPC2551。在完成所有设置后,开发板无法发送任何 CAN 消息。经过一些故障排除,发现 HAL 库中存在一个错误。现在我可以发送消息,但无法接收消息。用逻辑分析仪来测量数据,认为问题出在初始化阶段,无法在 FIFO 回调中收到消息。每次检查时,待处理的消息数都是 0。

classroom 发表于 2025-10-24 09:43 | 显示全部楼层
可能还存在硬件连接问题
cr315 发表于 2025-10-24 10:43 | 显示全部楼层
HAL库中的CAN过滤器设置可能不正确
duo点 发表于 2025-10-24 11:14 | 显示全部楼层
接收中断可能未启用,或者中断优先级设置不当,导致回调函数未被触发。
elephant00 发表于 2025-10-24 09:44 | 显示全部楼层
可能FIFO0或FIFO1未正确配置为接收消息,或者消息存储位置错误。
flycamelaaa 发表于 2025-10-24 09:45 | 显示全部楼层
初始化步骤遗漏,比如使能CAN外设时钟,配置GPIO引脚,或者正确初始化过滤器。
jcky001 发表于 2025-10-24 13:46 | 显示全部楼层
虽然设置了波特率,但可能收发双方的波特率不完全匹配,导致接收失败。
onlycook 发表于 2025-10-24 14:46 | 显示全部楼层
在接收处理中,可能存在逻辑错误,比如未正确检查FIFO状态,或者回调函数未正确实现。
onlycook 发表于 2025-10-24 14:46 | 显示全部楼层
在接收处理中,可能存在逻辑错误,比如未正确检查FIFO状态,或者回调函数未正确实现。
powerantone 发表于 2025-10-24 15:27 | 显示全部楼层
检查CAN总线的接线是否正确
probedog 发表于 2025-10-24 16:18 | 显示全部楼层
逻辑分析仪可以检测到信号,但若波形异常,可能指示硬件问题。
solty 发表于 2025-10-24 18:49 | 显示全部楼层
检查CAN的初始化代码,特别是过滤器配置。
stormwind123 发表于 2025-10-24 19:49 | 显示全部楼层
CAN接收中断是否已启用?
七毛钱 发表于 2025-10-24 20:51 | 显示全部楼层
是否调用了HAL_CAN_Start来启动CAN外设,或者在初始化后是否正确启动了接收功能。
今天会画卧蚕吗 发表于 2025-10-24 21:51 | 显示全部楼层
软件逻辑方面,检查接收回调函数是否被正确实现,并且在中断触发时能够正确处理消息。
wanduzi 发表于 2025-10-28 09:44 | 显示全部楼层
初始化后是否正确启动了接收功能。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

62

主题

62

帖子

0

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