[开发工具] CubeMX-解决FDCAN控制器无法接收远程帧

[复制链接]
 楼主| 晓伍 发表于 2021-9-4 15:57 | 显示全部楼层 |阅读模式
一. 前言
第一次接触STM32H7的FDCAN控制器时,觉得要使用它并不容易,很多参数需要配置。接着,按照硬石科技STM32H743教程的FDCAN章节,一步一步对FDCAN控制器进行配置。最后,终于能正常收发CAN报文。但是,事情总是不会那么简单地结束。 刚配置的FDCAN控制器居然无法接收远程帧。

二. STM32H743编程参考手册
碰到工程问题,应该第一时间查看《STM32H743编程参考手册》。在手册的56.3.2章节上找到一个流程图,这个流程图表示滤波器可以拒绝远程帧。按照这个思路查看一下配置FDCAN的代码,看看到底哪里配置了拒绝接收远程帧。

78502613326cda3c84.png

 楼主| 晓伍 发表于 2021-9-4 15:57 | 显示全部楼层
三. HAL_FDCAN_ConfigGlobalFilter( )
HAL_FDCAN_ConfigGlobalFilter()是配置FDCAN的滤波器关键的函数之一,由它决定FDCAN控制器是否决绝接收远程帧。
函数FDCAN2_RX_Filter0_Init()的目的是初始化FDCAN的滤波器,最后一步调用了HAL_FDCAN_ConfigGlobalFilter( )。
9482613326e1784bf.png
如上图所示,如果需要接收远程帧的话,HAL_FDCAN_ConfigGlobalFilter()的第三个与第四个入口参数需要用宏DISABLE。


xyzjacky 发表于 2022-12-20 14:08 | 显示全部楼层
请问一下楼主,CUBEMX的FD-CAN的配置选项里有一个Transmit pause,字面翻译是传输暂停,它的实际作用是什么呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

91

主题

4332

帖子

1

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

91

主题

4332

帖子

1

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