OpenEdv-开源电子网

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

Can 标识符列表模式

[复制链接]

4

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
67
金钱
67
注册时间
2015-4-6
在线时间
9 小时
发表于 2018-12-8 14:42:00 | 显示全部楼层 |阅读模式
1金钱
/过滤器初始化
CAN1->FMR |= 1<<0; // 过滤器组工作在初始化模式
CAN1->FA1R &= ~(1<<0); // 过滤器0不激活

CAN1->FS1R |= 1<<0; // 过滤器位宽为32位.
CAN1->FM1R |= 1<<0; // 过滤器0工作在标识符列表模式
CAN1->FFA1R |= 0<<0; // 过滤器0关联到FIFO0


CAN1->sFilterRegister[0].FR1 = 0X02000000; // 32位ID
CAN1->sFilterRegister[0].FR2 = 0X02000000; // 32位MASK
CAN1->FA1R |= 1<<0; // 激活过滤器0
CAN1->FMR &= 0<<0; // 过滤器组进入正常模式



ID 要设 0x010 ,CAN1->sFilterRegister[0].FR1 这里对吗?怎么送 ID 0x010 都沒法接收到数據。
请问哪错了?

最佳答案

查看完整内容[请看2#楼]

过滤是过滤对方的id给自己的id没关系 32位屏蔽寄存器MASK是定义32位标识符寄存器ID 那些位必须匹配 MASK为1的位ID必须给标识符寄存器ID的相应位一样 //例子 //屏蔽位设置0xffc (1111 1111 1111 1111 1111 1111 1100 0000 )后6位不关心 //标识位 设定 (0000 0000 0000 0000 0000 0000 00xx xxxx) x随意0 1 // ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

51

主题

2166

帖子

2

精华

论坛元老

Rank: 8Rank: 8

积分
10653
金钱
10653
注册时间
2017-4-14
在线时间
2780 小时
发表于 2018-12-8 14:42:01 | 显示全部楼层
过滤是过滤对方的id给自己的id没关系     32位屏蔽寄存器MASK是定义32位标识符寄存器ID 那些位必须匹配  MASK为1的位ID必须给标识符寄存器ID的相应位一样

        //例子  
        //屏蔽位设置0xffc  (1111 1111 1111 1111    1111 1111 1100 0000 )后6位不关心
        //标识位 设定        (0000 0000 0000 0000    0000 0000 00xx xxxx) x随意0 1  
        //                                                           只可以通过0-64(00 0000-
        //                                                                                - 11 1111)号id  ,其他的过滤了

回复

使用道具 举报

4

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
67
金钱
67
注册时间
2015-4-6
在线时间
9 小时
 楼主| 发表于 2018-12-10 20:06:01 | 显示全部楼层
多谢,搞定了,自己多了  init can2 ,设定被复蓋。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-9 04:24

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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