硬汉嵌入式论坛

 找回密码
 立即注册
查看: 4052|回复: 4
收起左侧

[CAN/FDCAN] STM32 H7 can 过滤多组ID方法求教?

[复制链接]

10

主题

19

回帖

49

积分

初级会员

积分
49
发表于 2020-7-29 15:49:57 | 显示全部楼层 |阅读模式
请问一下stm32 h7传统8字节的can,如何设置5组id过滤?
比如有0x12f,0x34d,0x481,0x577,0x61A  5组ID需要硬件过滤出来,可以实现吗?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107031
QQ
发表于 2020-7-29 15:57:00 | 显示全部楼层
H7的标准CAN方式支持标识符列表模式不,支持的话,比较简单。

你学习下标识符列表模式:

STM32的CAN总线的标识符过滤器组使用注意事项------->重要
http://www.armbbs.cn/forum.php?m ... 4449&fromuid=58
(出处: 硬汉嵌入式论坛)

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107031
QQ
发表于 2020-7-29 15:58:08 | 显示全部楼层
我之前F1和F4用的RL-CAN,他们是用的标识符列表模式,设置这个比较简单,要接收那些ID,添加那个即可。
回复

使用道具 举报

10

主题

19

回帖

49

积分

初级会员

积分
49
 楼主| 发表于 2020-7-29 16:19:19 | 显示全部楼层
请问一下stm32 h7传统8字节的can,如何设置5组id过滤?
比如有0x12f,0x34d,0x481,0x577,0x61A  5组ID需要硬件过滤出来,可以实现吗?

FDCANHalHandler.Init.StdFiltersNbr=3;  设置你想要过滤的过滤器个数

FDCANRxFilterType.IdType=FDCAN_STANDARD_ID;                       //标准ID
FDCANRxFilterType.FilterIndex=0;        //滤波器索引                  
FDCANRxFilterType.FilterType=FDCAN_FILTER_DUAL;                   //滤波器类型 过滤两个
FDCANRxFilterType.FilterConfig=FDCAN_FILTER_TO_RXFIFO0;           //过滤器0关联到FIFO0  
FDCANRxFilterType.FilterID1=0x12f;
FDCANRxFilterType.FilterID2=0x34d;
if(HAL_FDCAN_ConfigFilter(&can_cfg[canname].FDCANHalHandler,&FDCANRxFilterType)!=HAL_OK)
{       
        return 2;//滤波器初始化
}   


FDCANRxFilterType.FilterIndex=1;        //滤波器索引        
FDCANRxFilterType.FilterID1=0x481;
FDCANRxFilterType.FilterID2=0x577;

HAL_FDCAN_ConfigFilter(&can_cfg[canname].FDCANHalHandler,&FDCANRxFilterType)

FDCANRxFilterType.FilterIndex=2;        //滤波器索引        
FDCANRxFilterType.FilterID1=0x61A;
FDCANRxFilterType.FilterID2=0x61A;

HAL_FDCAN_ConfigFilter(&can_cfg[canname].FDCANHalHandler,&FDCANRxFilterType)


像上面这么整就行了,初始化的时候可选多组过滤,总共最多支持128个
RTX截图未命名.png

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107031
QQ
发表于 2020-7-29 16:48:17 | 显示全部楼层
nextstation 发表于 2020-7-29 16:19
请问一下stm32 h7传统8字节的can,如何设置5组id过滤?
比如有0x12f,0x34d,0x481,0x577,0x61A  5组ID需要硬 ...

FDCAND方便不少。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-14 21:15 , Processed in 0.241937 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表