打印
[STM32F4]

CAN发射正常,接受不对

[复制链接]
368|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
正在学习 STM32F446RE-NUCLEO 板,在两个 nucleo 板之间进行 CAN 通信测试。
已经在一个 Nucleo 上配置了 CAN32 外设作为发射器,另一个作为接收器。
发射机:
已经在一块板上配置了 CAN1 外设 (PA11--Rx,PA12--Tx),使用的 can 收发器MCP2551..
用 CubeMX 将 APB 时钟设置为 25MHz,并使用 CAN 位定时将波特率设置为 500kbps
在发射机中,工作正常.
数据寄存器 TDT0R 正确显示 DLC 位,TDL0R 和 TDH0R 正确显示数据字节。
ESR 寄存器显示 TEC 位为 128(这意味着发射器错误),LEC 位显示 3(表示确认错误)

接收器:
问题可能出在接收器这边.
MSR 寄存器中的 RXM 位为低电平,RI0R 寄存器显示一些随机值,RDT0R(Stdid,Dlc 位为垃圾),RDL0R(较低的数据字节也是垃圾),RDH0R(较高的数据字节也是垃圾)

是不是应该调用其他接受函数来更新寄存器???
另外:硬件工作正常.通过查看串口监视器和指示灯闪烁来确认接收器工作正常。
在示波器上能看到can总线数据。
所以问题出在接收机的 CAN 控制器???

使用特权

评论回复
沙发
flycamelaaa| | 2025-4-16 12:14 | 只看该作者
虽然发射器配置为 500kbps,但接收器可能未正确配置为 500kbps?

使用特权

评论回复
板凳
powerantone| | 2025-4-16 12:20 | 只看该作者
接收器的 CAN 模式可能未正确配置为正常模式

使用特权

评论回复
地板
stormwind123| | 2025-4-16 12:21 | 只看该作者
检查接收器的 CAN 模式是否设置为 Normal,而不是 Silent或 Loopback。

使用特权

评论回复
5
probedog| | 2025-4-16 12:21 | 只看该作者
CAN 滤波器可能未正确配置,导致无法接收消息。

使用特权

评论回复
6
classroom| | 2025-4-16 12:22 | 只看该作者
接收器的 MCP2551 收发器可能未正确连接或工作。

使用特权

评论回复
7
elephant00| | 2025-4-16 12:24 | 只看该作者
接收器的 CAN 中断可能未启用。

使用特权

评论回复
8
duo点| | 2025-4-16 12:25 | 只看该作者
即使启用了中断,如果未实现接收回调函数,接收到的消息也无法处理。

使用特权

评论回复
9
onlycook| | 2025-4-16 12:27 | 只看该作者
用 CAN 分析仪或示波器检查总线信号质量。

使用特权

评论回复
10
两只袜子| | 2025-4-16 15:00 | 只看该作者
检查 MCP2551 的电源和接地是否稳定。

使用特权

评论回复
11
jcky001| | 2025-4-16 16:00 | 只看该作者
CAN 总线终端电阻未正确连接?

使用特权

评论回复
12
cr315| | 2025-4-16 20:00 | 只看该作者
CAN 总线连接可能存在问题,导致信号质量不佳。

使用特权

评论回复
13
欢乐家园| | 2025-4-30 23:56 | 只看该作者
接收机的 MSR 寄存器中的 RXM 位为低电平,并且 RI0R、RDT0R、RDL0R 和 RDH0R 寄存器的值看起来像是垃圾数据,这通常表示接收机没有正确地接收到有效的数据帧或者 CAN 控制器的配置有问题。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

10

帖子

0

粉丝