CubeMX-解决FDCAN控制器无法接收远程帧
一. 前言第一次接触STM32H7的FDCAN控制器时,觉得要使用它并不容易,很多参数需要配置。接着,按照硬石科技STM32H743教程的FDCAN章节,一步一步对FDCAN控制器进行配置。最后,终于能正常收发CAN报文。但是,事情总是不会那么简单地结束。 刚配置的FDCAN控制器居然无法接收远程帧。
二. STM32H743编程参考手册
碰到工程问题,应该第一时间查看《STM32H743编程参考手册》。在手册的56.3.2章节上找到一个流程图,这个流程图表示滤波器可以拒绝远程帧。按照这个思路查看一下配置FDCAN的代码,看看到底哪里配置了拒绝接收远程帧。
三. HAL_FDCAN_ConfigGlobalFilter( )
HAL_FDCAN_ConfigGlobalFilter()是配置FDCAN的滤波器关键的函数之一,由它决定FDCAN控制器是否决绝接收远程帧。
函数FDCAN2_RX_Filter0_Init()的目的是初始化FDCAN的滤波器,最后一步调用了HAL_FDCAN_ConfigGlobalFilter( )。
如上图所示,如果需要接收远程帧的话,HAL_FDCAN_ConfigGlobalFilter()的第三个与第四个入口参数需要用宏DISABLE。
请问一下楼主,CUBEMX的FD-CAN的配置选项里有一个Transmit pause,字面翻译是传输暂停,它的实际作用是什么呢?
页:
[1]