1. FDCAN滤波器配置基础
STM32G474的FDCAN模块提供了强大的报文过滤功能,能够有效减轻MCU的处理负担。在实际应用中,我们经常需要接收多个特定ID的CAN报文,而忽略其他不相关的报文。FDCAN支持多种过滤模式,其中最常用的是掩码过滤和范围过滤。
滤波器的工作原理是通过硬件比较接收到的报文ID与预设的过滤条件,只有匹配的报文才会被存入接收FIFO并触发中断。每个滤波器可以独立配置为不同的模式,并且可以分配到不同的接收FIFO。
配置滤波器的基本步骤包括:
- 定义滤波器结构体并设置过滤参数
- 选择滤波器索引(0-27)
- 配置滤波器类型和分配目标
- 设置具体的过滤条件
- 启用滤波器
FDCAN_FilterTypeDef sFilterConfig;
sFilterConfig.IdType = FDCAN_STANDARD_ID;
sFilterConfig.FilterIndex = 0;
sFilterConfig.FilterType = FDCAN_FILTER_MASK;
sFilterConfig.FilterConfig = FDCAN_FILTER_TO_RXFIFO0;
sFilterConfig.FilterID1 = 0x100;
sFilterConfig.FilterID2 = 0x700;
这段代码配置了一个掩码过滤器,将匹配的报文分配到RXFIFO0。FilterID1设置基础ID值,FilterID2设置掩码模式。
2. 掩码过滤模式详解
掩码过滤模式是FDCAN中最灵活的过滤方式,它允许我们对ID的每一位进行精确控制。掩码的工作原理是:掩码位为1表示必须匹配,为0表示不关心。
举个例子,如果我们想要接收所有ID在0x100到0x1FF范围内的标准帧,可以这样配置:
sFilterConfig.FilterType = FD

3373

被折叠的 条评论
为什么被折叠?



