关于8962开发板can总线的问题

2019-03-24 13:09发布

 在multi_rx.c例程里面有这样一段代码   sCANMessage.ulMsgID = 0x1001;               // CAN msg ID
    sCANMessage.ulMsgIDMask = 0xfffff;          // mask, all 20 bits must match
    sCANMessage.ulFlags = MSG_OBJ_RX_INT_ENABLE | MSG_OBJ_USE_ID_FILTER |
                          MSG_OBJ_EXTENDED_ID;
    sCANMessage.ulMsgLen = 8;                   // allow up to 8 bytes
应该是29位的扩展模式  但是ulMsgIDMask  为啥是写成20bit呢? 是因为这段代码中的ulMsgID 小于20位才这么写的还是因为什么其他原因   谢谢 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
academic
1楼-- · 2019-03-24 19:44
< 20 bit 就是 32 ,应该是支持 32 个 ID,所以是 20 bit
stefchang
2楼-- · 2019-03-25 00:14
< :TI_MSP430_内容页_SA7 --> 根据PDF上说明
ulMsgIDMask的每一位都对应的标识符ID  
标识符ID总共有29位 (扩展的)
所以标识符屏蔽码 应该也有29bit才对啊
CANIF2MSK2 CANIF2MSK1    就是这两个寄存器
stefchang
3楼-- · 2019-03-25 05:24
 精彩回答 2  元偷偷看……
stefchang
4楼-- · 2019-03-25 06:44
wpj1018
5楼-- · 2019-03-25 08:46
你好:
    mask, all 20 bits must match
    他这么写目的是突出这20bit必须匹配,应该没有其它含义.
    请再仔细了解一下.
Fred
benbending
6楼-- · 2019-03-25 09:30
 精彩回答 2  元偷偷看……

一周热门 更多>

相关问题

    相关文章