[技术问答] 利用BSP中的Can的例子进行Can波特率设置时报错怎么解决?

[复制链接]
 楼主| classroom 发表于 2024-10-19 14:00 | 显示全部楼层 |阅读模式
利用BSP中的Can的例子,进行Can波特率设置时,例程中是先设置,然后再进行比较确认,看是否设置成功,我现在接着ULINK2进行仿真,发现进行比较确认时都是出错的,不知是否有人遇到过,能够指点我一下,谢谢了!
gra22ce 发表于 2025-1-15 19:44 | 显示全部楼层
在使用BSP中的CAN例程进行波特率设置时,如果通过ULINK2仿真发现波特率比较确认失败,可能是时钟源配置问题
gongqijuns 发表于 2025-1-15 20:50 | 显示全部楼层
CAN波特率的计算依赖于系统时钟(如PLL、HCLK等)。如果时钟源配置不正确,实际波特率可能与预期值不符。检查系统时钟配置,确保时钟源(如外部晶振、内部RC振荡器等)正确。确认CAN模块的时钟源是否与系统时钟一致。使用示波器或逻辑分析仪测量CAN总线的实际波特率,验证是否与设置值一致
hight1light 发表于 2025-1-15 21:55 | 显示全部楼层
CAN波特率的计算公式可能未正确实现,导致设置值与实际值不符。
miltk 发表于 2025-1-15 23:35 | 显示全部楼层
可能是CAN总线的硬件连接存在问题,导致通信失败。检查CAN总线的物理连接,确保CAN_H和CAN_L线连接正确。确保终端电阻(通常为120Ω)正确连接在CAN总线的两端。使用示波器检查CAN总线上的信号质量,确保没有噪声或信号失真。
wamed 发表于 2025-1-16 08:25 | 显示全部楼层
ULINK2仿真器可能对CAN通信产生干扰,导致波特率比较失败。试在不使用仿真器的情况下运行程序,直接通过串口或调试信息输出波特率设置结果。如果问题消失,可能是仿真器干扰导致的问题,可以尝试更换仿真器或调整仿真器设置
清芯芯清 发表于 2025-1-16 10:08 | 显示全部楼层
CAN模块的初始化顺序可能不正确,导致波特率设置失败
nuan11nuan 发表于 2025-1-16 12:08 | 显示全部楼层
一般来说,CAN寄存器的配置可能不正确,会导致波特率设置失败。检查CAN寄存器的配置,确保波特率相关寄存器(如CAN_BTR)设置正确。使用调试工具(如Keil的Memory窗口)查看CAN寄存器的实际值,与预期值进行比较
pe66ak 发表于 2025-1-16 13:15 | 显示全部楼层
CAN模块可能未正确进入初始化模式,导致波特率设置失败。在设置波特率之前,确保CAN模块已进入初始化模式(CAN_MCR寄存器的INRQ位为1)。设置波特率后,等待CAN模块进入正常模式(CAN_MSR寄存器的INAK位为0)。
canfeil 发表于 2025-1-16 15:05 | 显示全部楼层
在程序中添加调试信息,输出CAN寄存器的值和波特率计算结果。使用串口或调试工具查看输出信息,分析问题原因
资深技术 发表于 2025-1-16 15:37 | 显示全部楼层
不知用的什么型号芯片。我用NUC131芯片,原例程不做修改直接编译,调试没有问题
tiakon 发表于 2025-1-16 18:25 | 显示全部楼层
波特率设置报错是不是你输入的格式不对啊?
powerantone 发表于 2025-1-17 14:49 | 显示全部楼层
检查配置文件是否正确
laocuo1142 发表于 2025-1-17 21:00 | 显示全部楼层
系统时钟配置不正确,或者CAN外设的时钟为使能。
flycamelaaa 发表于 2025-1-17 21:00 | 显示全部楼层
引脚配置有误
powerantone 发表于 2025-1-17 22:00 | 显示全部楼层
查看错误代码和日志
probedog 发表于 2025-1-17 22:00 | 显示全部楼层
如果可能,尝试使用其他CAN总线设备或测试工具来验证CAN总线的功能是否正常。
stormwind123 发表于 2025-1-17 23:00 | 显示全部楼层
BSP版本与您的硬件和软件环境不兼容。有时,BSP中的bug或更新可能会导致问题。
Stahan 发表于 2025-1-19 23:13 来自手机 | 显示全部楼层
报错信息是什么啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

526

主题

3258

帖子

2

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