OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2961|回复: 1

mcp2515 过滤器:标准帧ID通过了,但竟然要需要数据也匹配

[复制链接]

15

主题

47

帖子

0

精华

初级会员

Rank: 2

积分
114
金钱
114
注册时间
2020-3-12
在线时间
23 小时
发表于 2022-11-30 10:00:40 | 显示全部楼层 |阅读模式
1金钱
我设置过滤器屏蔽全部为0xFF后,扩展帧测试没问题,但标准帧竟然要求数据也得匹配。
比如我设置过滤器标准帧ID为0x10,IDE为0。这时候我发送了一个ID为0x10的标准帧,如果8个字节数据都是0的时候是能接收到的,中断也能产生,完全正常,但是如果8个数据中的前两个字节如果不是0,就不会产生中断,即接收不到数据。这是什么鬼情况,有人遇到过吗?
具体点,外部向MCP2515发送ID为0x10的标准帧,数据是【0,0,0,0,0,0,0,0】,通过,完全没问题
但是,外部向MCP2515发送ID为0x10的标准帧,数据是【0x01,0,0,0,0,0,0,0】,则无法通过过滤器,具体情况是中断没产生并且查询中断寄存器对应的位也没有置1。

另外MCP2515的CAN过滤器这么少吗?STM32每个CAN通道可以支持28个ID(列表模式),而这个2515只能搞出6个?一般习惯屏蔽位全部为1,只靠过滤器ID来过滤,这样比较简单通用,否则很容易接收到不想接受的数据

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

15

主题

47

帖子

0

精华

初级会员

Rank: 2

积分
114
金钱
114
注册时间
2020-3-12
在线时间
23 小时
 楼主| 发表于 2022-11-30 11:41:41 | 显示全部楼层
刚测试,屏蔽寄存器的扩展ID位最低2字节改为0时,标准帧接受正常。
如果只把最低1字节改为0,那么接收到的8字节数据中,第二个字节必须为0才能通过过滤。
如果把屏蔽寄存器最低2字节设为00FF,那么接收到的8字节数据中,第一个字节必须为0才能通过过滤。
见鬼了,接收到的8字节数据竟然能影响是否通过过滤器。
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-6-8 19:23

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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