打印
[STM32F4]

采用CAN 2.0A协议时,标识符筛选器的EXID[17:15]部分如何设置?

[复制链接]
1406|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
shaodong821|  楼主 | 2024-5-10 22:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在STM32F407中,CAN如果采用的是 2.0A协议(只使用11位的标准ID),那么在设置筛选器为“2个16位筛选器——标识符掩码”模式时,其中的EXID[17:15]部分如何设置?还是此部分无关紧要,不必设置?

使用特权

评论回复
沙发
flycamelaaa| | 2024-5-11 16:10 | 只看该作者
CAN 2.0A仅支持11位的标准标识符(SID)。

使用特权

评论回复
板凳
laocuo1142| | 2024-5-12 16:00 | 只看该作者
对于CAN 2.0A和11位的标准ID,你只需要关心SID[10:0]字段,而EXID[31:0]和SID[14:11]应该被设置为0或不被考虑。在配置CAN过滤器时,确保你正确设置了ID和MASK寄存器以匹配你想要的11位标准ID。

使用特权

评论回复
地板
夜阑风雨| | 2024-6-19 11:06 | 只看该作者
在STM32F407的CAN控制器中,如果使用的是CAN 2.0A协议,即只使用11位的标准ID,那么在设置筛选器为“2个16位筛选器——标识符掩码”模式时,EXID[17:15]部分确实是不相关的,因为这些位对应的是扩展ID,而在2.0A协议中不会使用到扩展ID。

使用特权

评论回复
5
远山寻你| | 2024-6-19 14:00 | 只看该作者
在“2个16位筛选器——标识符掩码”模式下,每个筛选器由一个16位的标识符寄存器(CAN_FxR1)和一个16位的掩码寄存器(CAN_FxR2)组成。标识符寄存器用于设置你希望匹配的ID,而掩码寄存器用于指定哪些位在标识符寄存器中是必须匹配的,哪些位可以忽略。

使用特权

评论回复
6
光辉梦境| | 2024-6-19 16:00 | 只看该作者
由于CAN 2.0A不使用扩展ID,因此EXID[17:15]部分在设置筛选器时可以不必关心。

使用特权

评论回复
7
淡漠安然| | 2024-6-19 18:00 | 只看该作者
你可以将这些位设置为0,或者根据你的具体应用需求设置为其他值,因为这些位不会影响标准ID的匹配。

使用特权

评论回复
8
暖了夏天蓝了海| | 2024-6-19 20:00 | 只看该作者
例如,如果你想要匹配一个特定的标准ID,比如0x123,你可以这样设置: CAN_FxR1(标识符寄存器):0x0123(或者将EXID[17:15]设置为你想要的任何值) CAN_FxR2(掩码寄存器):0x1FFF(确保只有低11位是必须匹配的,其他位可以忽略)

使用特权

评论回复
9
江河千里| | 2024-6-20 02:00 | 只看该作者
只有当接收到的CAN消息的标准ID与CAN_FxR1中的低11位匹配时,该消息才会通过筛选器。EXID[17:15]部分的值不会影响筛选结果,因为它们在CAN 2.0A协议中不会被使用。

使用特权

评论回复
10
冰春彩落下| | 2024-6-20 04:00 | 只看该作者
我觉得可以用协议的方式实现吧,就判断每个字节都是干啥的

使用特权

评论回复
11
一秒落纱| | 2024-6-20 06:00 | 只看该作者
CAN还是比较难,因为夹杂了一些复杂的硬件逻辑在里面

使用特权

评论回复
12
三生万物| | 2024-6-20 11:00 | 只看该作者
设置筛选器为“2个16位筛选器——标识符掩码”模式基本就可以了

使用特权

评论回复
13
别乱了阵脚| | 2024-6-20 13:00 | 只看该作者
应该是可以选择不设置的吧

使用特权

评论回复
14
小小蚂蚁举千斤| | 2024-6-23 17:35 | 只看该作者
参考can2.0的标准协议进行开发

使用特权

评论回复
15
AdaMaYun| | 2024-6-24 23:00 | 只看该作者
在STM32F407的CAN控制器中,如果使用的是CAN 2.0A协议标准进行设计

使用特权

评论回复
16
LOVEEVER| | 2024-6-25 19:45 | 只看该作者
参考CAN 2.0A协议

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

4

帖子

0

粉丝