- CAN过滤器标识符掩码模式,我们希望收到的映像为什么是(STID+EXTID+IDE+RTR)?而不是将STID移到[31..21]| EXID移到[20..4] | IDE移到[3]| ITE移到[2] | RTR移到[1] | 0 ?
- 关于标识符列表模式能不能举个例子?《在标识符列表模式下,屏蔽寄存器也被当作标识符寄存器用。因此,不是采用一个标识符加一个屏蔽位的方式,而是使用2个标识符寄存器。接收报文标识符的每一位都必须跟过滤器标识符相同》因为使用2个标识符寄存器,而我们收到的映像(STID+EXTID+IDE+RTR)是跟ID1(CAN_FxR1)还是是跟ID2(CAN_FxR2)比较?或者怎么跟ID1/ID2同时比较?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
花了一天调通CAN 通信,只不过当时不明白掩码模式与标识符列表模式的原理,就不知道究竟标准ID StdID,扩展ID ExtId,如何设置才合理。然后再花了一天半的时间去尝试验证自己理解的标准ID StdID,扩展ID ExtId的设置方法究竟对不对?而原子库函数开发指南一书中:标识符掩码模式举的例子,期望ID的计算方法=(STDID+EXTID+IDE+ RTR+````)描述得不太对,容易让人误入歧途。标识符列表模式没有举例,也不太理解。最终仔细地看了CAN_Transmit函数的定义才终于理解,并得出下面这么一张图。如有不对,还请指正。这图只是针对32位的,16位的还是未能理解·········
一周热门 更多>