STM32——CAN总线过滤器设置
STM32CAN控制器每个筛选器组由两个32位的寄存器组成。
根据所需位宽的不同,各个筛选器可配置成16位或32位模式(如下图,当FSCx=1为32位模式,FSCx=0时为16位模式)。同时,筛选器的模式可配置成掩码模式和列表模式(FBMx=0为掩码模式,FBMx=1为列表模式)。
掩码模式:对报文ID的每一位可选择必须相同和不管它。
列表模式:只给出接收的ID,其它的一概不接收。
下面将这四种情况分别介绍一下:
1、1个32位筛选器——掩码模式
第一个筛选器写入报文ID,第二个筛选器规定对应的每个位是检查它(置1)还是不管它(置0)。
例如,第一个筛选器设置为0x0000,这时候如果第二个筛选器设置0xFFFF,就意味着对每个位都检查,即只接收ID是0x0000的报文。如果第二个筛选器设置0xFFFE,就是对最后一位不管,这时候0x0001和0x0000都可以被接收啦。
2、2个32位筛选器——列表模式
第一个筛选器写入报文ID,第二个也写标准的报文ID。此时只接收ID为这俩的报文。
例如,第一个筛选器设置0x0000,第二个筛选器设置0x0001。此时只能接收ID为0x0000和0x0001的报文了。
3、2个16位筛选器——掩码模式
和第一种情况差不多,只不过位宽减小到了16位,只支持标准ID格式,但是可以筛选的ID数增大到了两个。
4、4个16位筛选器——列表模式
拆分成的4个16位筛选器允许写入4个标准ID,只接收这4个ID的报文。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」