[STM8] 【众拳】基于STM8的CAN总线标识符过滤实验分享

[复制链接]
1098|9
 楼主| 刘洋讲单片机 发表于 2017-11-29 09:59 | 显示全部楼层 |阅读模式
TB2ZUvHqVXXXXc2XpXXXXXXXXXX_!!85243700.jpg
实验目的:
通过对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寄存器)的模式,
16位过滤器组设置
1.png
FMHx=0 高位寄存器工作在屏蔽位模式。          FMLx =0 低位寄存器工作在屏蔽位模式。
FMHx=1 高位寄存器工作在标识符列表模式。   FMLx =1 低位寄存器工作在标识符列表模式。
16/8位过滤器组设置

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

8位过滤器组设置
3.png
FMHx=0 高位寄存器工作在屏蔽位模式。          FMLx =0 低位寄存器工作在屏蔽位模式。
FMHx=1 高位寄存器工作在标识符列表模式。   FMLx =1 低位寄存器工作在标识符列表模式。



【众拳】剑齿虎开发板的实验代码下载:
众拳STM8的CAN总线标识符过滤实验程序.zip (1.65 MB, 下载次数: 10)

基于STM8的CAN总线数据转发实验请点以下链接查看:
https://bbs.21ic.com/icview-2391498-1-1.html

643757107 发表于 2017-11-29 11:51 | 显示全部楼层
没想到CAN的学问这么深奥
xiaoyaodz 发表于 2017-11-29 21:36 | 显示全部楼层
mmuuss586 发表于 2017-11-29 21:50 | 显示全部楼层

感谢分享;
zhuotuzi 发表于 2017-11-30 21:25 来自手机 | 显示全部楼层
就是接受发给自己的豹纹啊
dongnanxibei 发表于 2017-11-30 23:39 来自手机 | 显示全部楼层
这个可以多主机通信吗?
dongnanxibei 发表于 2017-11-30 23:48 来自手机 | 显示全部楼层
地址过滤吗?
dongnanxibei 发表于 2017-11-30 23:48 来自手机 | 显示全部楼层
是不是也可以不过滤监听别人的话
heisexingqisi 发表于 2017-11-30 23:52 来自手机 | 显示全部楼层
一个主机可以挂多少从机?
 楼主| 刘洋讲单片机 发表于 2017-12-1 11:53 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

148

主题

499

帖子

72

粉丝
快速回复 在线客服 返回列表 返回顶部