hrefspace

 找回密码
 立即注册
搜索
热搜: PHP PS 程序设计
查看: 854|回复: 0

【众拳】基于STM8的CAN总线标识符过滤实验 附代码

[复制链接]

519

主题

519

帖子

1581

积分

版主

Rank: 7Rank: 7Rank: 7

积分
1581
发表于 2024-4-30 21:06:47 | 显示全部楼层 |阅读模式

实验目的:
通过对CAN过滤器的设置,屏蔽总线上其他无用的报文,只接收自己需要的报文。
标识符过滤模式
● 可变的位宽
  每个过滤器组的位宽都可以独立配置,以满足应用程序的不同需求。根据位宽的不同,每个过滤器组可提供:
  ─  1 个 32 位过滤器,包括:STDID[10:0]/EXTID[28:18]、IDE、EXID[17:0]和 RTR 位;
  ─  2 个 16 位过滤器,包括:STDID[10:0]/EXTID[28:18]、IDE 和 RTR 位;
  ─  4 个 8 位过滤器,包括:STDID[10:3]/EXTID[28:21],其他位可以不用关心;
  ─  1 个 16 位过滤器和 2 个 8 位过滤器,具体的过滤器描述如上16位和8位过滤器描述。

FMLx位定义该寄存器组的低半组(CAN_FxR1-4寄存器)的模式,
FMHx位定义该寄存器组的高半组(CAN_FxR5-8寄存器)的模式,
32位过滤器组设置

FMHx=0 高位寄存器工作在屏蔽位模式。          FMLx =0 低位寄存器工作在屏蔽位模式。
FMHx=1 高位寄存器工作在标识符列表模式。   FMLx =1 低位寄存器工作在标识符列表模式。

FMLx和FMHx位必须拥有相同的值以确保4个屏蔽位/标识符过滤器位处于相同的模式。
16位过滤器组设置


FMHx=0 高位寄存器工作在屏蔽位模式。          FMLx =0 低位寄存器工作在屏蔽位模式。
FMHx=1 高位寄存器工作在标识符列表模式。   FMLx =1 低位寄存器工作在标识符列表模式。

16/8位过滤器组设置

FMHx=0 高位寄存器工作在屏蔽位模式。          FMLx =0 低位寄存器工作在屏蔽位模式。
FMHx=1 高位寄存器工作在标识符列表模式。   FMLx =1 低位寄存器工作在标识符列表模式。

8位过滤器组设置

FMHx=0 高位寄存器工作在屏蔽位模式。          FMLx =0 低位寄存器工作在屏蔽位模式。
FMHx=1 高位寄存器工作在标识符列表模式。   FMLx =1 低位寄存器工作在标识符列表模式。


【众拳】剑齿虎STM8开发板的CAN实验代码下载:



基于STM8的CAN总线数据转发实验请点击查看下面链接:
http://www.mcuzx.net/thread-119704-1-1.html

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|小黑屋|hrefspace

GMT+8, 2024-5-18 22:18 , Processed in 0.064361 second(s), 25 queries .

Powered by hrefspace X3.4 Licensed

Copyright © 2022, hrefspace.

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