历史上的今天
今天是:2025年07月10日(星期四)
2018年07月10日 | stm32 Can通讯过滤器寄存器设置
2018-07-10 来源:eefocus
起因:在使用stm32单片机can通讯时,参考手册的介绍与寄存器封装有差别,不好理解怎么去设置寄存器。在参考一些代码时,对怎么去设置过滤器还是难以理解。
解决:
在寄存器封装库中,我们发现CAN过滤器设置寄存器封装有CAN1->sFilterRegister[ x ].FR1 和 CAN1->sFilterRegister[ x ].FR2 两个寄存器,其封装如下:
typedef struct
{
__IO uint32_t FR1;
__IO uint32_t FR2;
} CAN_FilterRegister_TypeDef;
我所碰到的问题便是这两个寄存器的如何设置问题。
首先我们得理解过滤器的格式,如下:
我们所要设置的寄存器CAN1->sFilterRegister[ x ].FR1便是如上图所说的标识符屏蔽模式中的 ID,
而CAN1->sFilterRegister[ x ].FR2, 就是屏蔽寄存器; 在标识符列表模式中,两者都是ID。
我们按上面的格式去设置寄存器: 标准ID / 拓展ID + IDE + RTR + x 。
已知 IDE = 0 代表标准ID, IDE =1 代表拓展ID; RTR = 0代表数据帧,RTR = 1代表远程帧;
那么,我们给个例子:
标识符列表 ID = 0x09 拓展帧 :
CAN1->sFilterRegister[0].FR1=0x09<<3|0x04; //id=0x01,拓展帧数据
CAN1->sFilterRegister[0].FR2=0x09<<3|0x04; //标识符列表,相同
过滤寄存器如此设置就能过滤拓展帧的id为0x09的数据了
标识符屏蔽 ID = 0x11 标准帧 :
CAN1->sFilterRegister[1].FR1=0x11<<21|0x04; //标准id, 0x04为屏蔽模式,
CAN1->sFilterRegister[1].FR2=0xffc00004; //id全部屏蔽,IDE屏蔽,RTR屏蔽
过滤器如此设置就能过滤标准帧id为0x11的数据。
到这里基本上写完了,这些都是通过验证得到的。如果有问题的欢迎交流。
史海拾趣
|
我在用AT89C2051做个小装置。输入口高电平有效。所以在程序的开始将输入口置零,但是发现吸收电流较大,只有加一级三极管放大电流才能正常工作。有没有其它的方法解决?谢谢!!… 查看全部问答> |
|
为什么我的串口通信程序只能接收几个字节,接收几十个字节时就接收不正确了! 我接收几个字节时都能正确接收,现在要接收30多个字节,这时就接收不了! 有谁遇到过类似的问题啊?到底什么原因阿?帮帮我!谢谢 ! 波特率:38400 bps 起始位:1 ...… 查看全部问答> |
|
哪位高人知道,在Windows Mobile 6.0 SDK环境下,如何用DirectShow 和 DirectDraw 使用overl 哪位高人知道,在Windows Mobile 6.0 SDK环境下,如何用DirectShow 和 DirectDraw 使用overlay2开发camera应用程序。谢谢了。… 查看全部问答> |
|
最近有一个板子刚好要用到群星系列的MCU,看到坛子有这个活动,就认领了分析原理图的任务,和大伙一起讨论。 初步想法:把原理图分成几个模块,一步一步分析,先最小系统,再其他单元,最后单板接口。 我是ARM-Cortex-M3初学者,手上也没有这块板 ...… 查看全部问答> |
|
在运动障碍性疾病(Movement Disorders)中,帕金森病(Parkinson Disease,PD)以肌张力增高、运动减少为主要临床特征,因首先由英国人帕金木(Janes Parkinson)于1817年描述而得名。据不完全统计,目前我国约为120~130万帕金森病患者,而全世界 ...… 查看全部问答> |
|
代码如下: ;/*-----------------------------------------------------------------------*/ ;/*********实现从汇编语言中使用B或BL命令跳转到C语言程序的main()函数********/ ;/********************从main()函数调用delay()函数********** ...… 查看全部问答> |
|
本帖最后由 dontium 于 2015-1-23 11:22 编辑 已收到《运算放大器噪声优化手册》实在是一本不可多得的好书,其从不同角度不同应用中解析不同噪声对运放电路造成的不同影响,每章小结更是清晰的列明本章要点,如更进一步巩固知识还有相关习题,本书 ...… 查看全部问答> |
|
EK-TM4C123GXL突然下载不了程序,提示如图的错误。各位遇到的请说下怎么解决 我换了一块板子可以正常下载。而且这个提示错误的板子芯片中有的程序能正常运行就是下载不了程序。提示如图的错误。各位有遇到这种问题吗。怎么解决的。愿闻其详!!!感谢!!! … 查看全部问答> |




