没有合适的资源?快使用搜索试试~ 我知道了~
STM32F103芯片CAN总线应用程序.pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 156 浏览量
2023-06-11
22:21:03
上传
评论
收藏 182KB PDF 举报
温馨提示
试读
6页
STM32F103芯片CAN总线应用程序.pdf
资源推荐
资源详情
资源评论
/*******************************************************************
---------------------Copyright(a)-----------------------------------
作者:
日期:
修改记录:
描述:
STM32 共有 14 组过滤器,用以对接收到的帧进行过滤。每组过滤器包括了 2 个可
配置的 32 位寄存器:CAN_FxR0 和 CAN_FxR1。
对于过滤器组,可以将其配置成屏蔽位模式,这样 CAN_FxR0 中保存的就是标识符
匹配值,CAN_FxR1 中保存的是屏蔽码,
即 CAN_FxR1 中如果某一位为 1,
则 CAN_FxR0 中相应的位必须与收到的帧的标志符中的相应位吻合才能通过过滤器;
CAN_FxR1 中为 0 的位表示 CAN_FxR0 中的相应位可不必与收到的帧进行匹配。
过滤器组还可以被配置成标识符列表模式,此时 CAN_FxR0 和 CAN_FxR1 中的都是要
匹配的标识符,收到的帧的标识符必须与其中的一个吻合才能通过过滤。
例如:
CAN_FilterInitStructure.CAN_FilterNumber=0;
//设置第一组过滤器
CAN_FilterInitStructure.CAN_FilterMode=CAN_FilterMode_IdMask;
//屏蔽位模式
CAN_FilterInitStructure.CAN_FilterScale=CAN_FilterScale_32bit;
//32 位
CAN_FilterInitStructure.CAN_FilterIdHigh=(0x0635<<5);
//接收 ID 为 635 的消息 11 位帧 ID 标准帧因此左移 5
CAN_FilterInitStructure.CAN_FilterIdLow=0x0000;
CAN_FilterInitStructure.CAN_FilterMaskIdHigh=0xffff;
//
CAN_FilterInitStructure.CAN_FilterMaskIdLow=0xffff;
CAN_FilterInitStructure.CAN_FilterFIFOAssignment=CAN_FIFO0;
//第一组过滤器指向 FIFO0
CAN_FilterInitStructure.CAN_FilterActivation=ENABLE;
CAN_FilterInit(&CAN_FilterInitStructure);
滤波器配置详细如下:
1、对扩展数据帧进行过滤:(只接收扩展数据帧)
CAN_FilterInitStructure.CAN_FilterIdHigh = (((u32)slave_id<<3)&0xFFFF0000)>>16;
CAN_FilterInitStructure.CAN_FilterIdLo=(((u32)slave_id<<3)|CAN_ID_EXT|CAN_RTR_DATA)&0xFF
FF;
CAN_FilterInitStructure.CAN_FilterMaskIdHigh = 0xFFFF;
CAN_FilterInitStructure.CAN_FilterMaskIdLow = 0xFFFF;
(注:标准帧数据帧、标准远程帧和扩展远程帧均被过滤)
资源评论
hhappy0123456789
- 粉丝: 61
- 资源: 5万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功