STM32 CAN应用-过滤器设置

本文详细介绍了在STM32中如何设置CAN控制器的过滤器,以实现对扩展数据帧、扩展远程帧、标准远程帧和标准数据帧的精确接收。通过设置CAN_FilterInitStructure的参数,如CAN_FilterMode、CAN_FilterScale、CAN_FilterIdHigh和CAN_FilterIdLow等,可以控制IDE和RTR位,从而过滤所需类型的消息。
摘要由CSDN通过智能技术生成
在使用STM32的CAN控制器进行数据收发,当用到位屏蔽模式的时候,就要设置过滤器了,这个关系到是否能够接收到想要的数据。下面针对几种不同情况对CAN过滤器(Filter)进行设置。
CAN_FilterInitStructure.CAN_FilterMode = CAN_FilterMode_IdMask; //标示符屏蔽模式
CAN_FilterInitStructure.CAN_FilterScale = CAN_FilterScale_32bit;
1、对扩展数据帧进行过滤:(只接收扩展数据帧)
CAN_FilterInitStructure.CAN_FilterIdHigh =(EXT_ID >> 13) & 0xFFFF;
CAN_FilterInitStructure.CAN_FilterIdLow =((EXT_ID << 3) | (0x04)) & 0xFFFF; 
//这里设置|0x04(0b0100)就是为了IDE=1,RTR=0,
//这里也可以写为(EXT_ID << 3)|CAN_ID_EXT|CAN_RTR_ROMOTE,效果一样,下同
CAN_FilterInitStructure.CAN_FilterMaskIdHigh = 0xFFFF;
CAN_FilterInitStructure.CAN_FilterMaskIdLow = 0xFFFF;
2、对扩展远程帧过滤:(只接收扩展远程帧)
CAN_FilterInitStructure.CAN_FilterIdHigh =(EXT_ID >> 1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值