STM32
直播中

李斌

7年用户 1401经验值
私信 关注
[问答]

STM32F413 CAN2过滤器寄存器设置不成功的原因?

最近用到了STM32F413的CAN1、CAN2。调试CAN2时,发现只能发送不能接收。仿真发现,其CAN_FM1R、CAN_FS1R

CAN_FFA1R、CAN_FA1R、CAN_FMR 设置后,数值不变, 无法更改。但CAN_FMR中的FINIT位可以更改。

[size=14.6667px]CAN1工作正常,并且寄存器值可以正常更改。调试了几天了,一直没找到原因。[size=14.6667px]

[size=14.6667px]哪位遇到过类似情况,请给指导一下,不胜感谢!

回帖(1)

李波

2024-4-9 18:08:56
可以从以下几个方面入手进行排查:

1. 确保CAN2的时钟已经正确配置。在使用CAN2之前,需要先配置相应的时钟源。可以参考STM32F4的参考手册或者相应的库文件函数进行配置。

2. 确保CAN2的GPIO引脚配置正确。CAN2与CAN1相似,但是引脚可能有所不同。请确保CAN2的引脚配置正确,包括模式、速率等。

3. 确保CAN2的中断配置正确。如果CAN2发送正常,但接收不正常,可以考虑中断相关的配置是否存在问题。

4. 检查CAN2过滤器的配置。使用CAN2之前,需要配置过滤器。请确保过滤器相关的寄存器设置正确,包括 CAN_FM1R、CAN_FS1R、CAN_FFA1R、CAN_FA1R等寄存器。

5. 检查CAN2的操作模式。如果CAN2没有接收任何数据,可以尝试将CAN2从循环模式切换到正常模式,并重新配置寄存器进行尝试。


举报

更多回帖

发帖
×
20
完善资料,
赚取积分