问答详情
首页
找产品
找企业
资讯
论坛
百科
问答
维修
服务
品牌
改装
首页
问答
电器
传感器
问答详情
问
STM32 CAN 过滤器设置
#TVS管#
#FXSY#
#JTWS#
#QMSK#
#ESP泵#
全部回答4
默认
最新
匿名用户
2025-02-01
看手册里有关该模式过滤寄存器的每位含义,最低三位是IDE RTR和 0,前面高位是标识符
0
点赞
匿名用户
2025-02-01
CAN总线传送到数据是基于消息而不是地址的,每个消息用不同的编号表达(2.0A用11位、2.0B用29位)。在CAN上进行简单传送而自定义传送协议时,要把所有需要传送的命令列出,然后根据传送的紧急程度(优先级)从高到低进行排序,然后把最高优先级的设定一个最低的编号、以此类推...最低优先级的设定最高的编号。因为CAN物理上是不分主从,所以当有几个站点同时发送而发生碰撞时,编号最低的将优先传送。 从总线上接收消息:每个站点可能只对所有协议中的几个消息感兴趣,CAN初始化时,在过滤器中设置本站点需要接收的消息编号,这样一旦总线上有需要的消息将会自动接收,并产生中断,通知CPU收到新消息,CPU在中断程序中接收、处理。 发送消息到总线上:CAN初始化时设置本站点将来需要发送的消息编号,当运行过程中需要发送消息时,填入相关数据,设置相关消息对象发送。 CAN控制器内部一般设有32个消息对象,分成2组,分别各用一组寄存器来操作。一般一组用来接收过滤,另一组用来发送。希望能解决您的问题。
0
点赞
戴刺的玫瑰
2025-02-01
can的过滤器是硬件设置接受指定地址数据用的。假如说1号机设置filterid为0x01010101,filtermask设置为0xffffffff,那么他只能接受can通讯数据id为0x01010101的数据,其他的硬件就会被屏蔽掉。如果filtermask设置为0,那么就是所有id的数据都可以接受。filterid为过滤的地址,filtermask与filterid对应每一位表示是否需要匹配当前位。还是上面的例子,mask设置为全1,表示所有为必须匹配,也就是只接受和filterid一样的数据;mask设置为全0,就是任何一位都不需要匹配;mask设置为1,就是最低位匹配即可。就是这么个道理语言比较混乱,不知能否看明白
0
点赞
匿名
2025-02-01
如果答案是你这样,那么IDE,RTR就不管了?移动三位我们可以理解成给IDE,RTR,以及保留位留位置出来(这三位可不是在扩展18位里面的),那么问题来了98A4怎么出来的呢(自己去算,单片机自己不动脑是不行的)?
0
点赞
没有更多内容了
求购