请教一个关于CAN总线标准ID和扩展ID的问题

2020-02-11 09:53发布

请教一下在CAN总线里面,标准ID去低11位的stdid之后,为什么还有个向左移动21位的设置呢?在扩展ID里面取低32位之后,也是向左移动3位的设置?
assert_param(IS_CAN_STDID(TxMessage->StdId));  
CANx->sTxMailBox[transmit_mailbox].TIR |= ((TxMessage->StdId << 21) |
                                                  TxMessage->RTR);

assert_param(IS_CAN_EXTID(TxMessage->ExtId));
CANx->sTxMailBox[transmit_mailbox].TIR |= ((TxMessage->ExtId << 3) |
                                                  TxMessage->IDE |
                                                  TxMessage->RTR);

这么设置是为什么呢?请大神帮忙解答下,谢谢了!!!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
leafstamen
1楼-- · 2020-02-11 11:56
打开手册看寄存器去。
yu2008
2楼-- · 2020-02-11 14:34
 精彩回答 2  元偷偷看……
youmu
3楼-- · 2020-02-11 15:48
左对齐。。
richyhuang
4楼-- · 2020-02-11 18:07
這個基本就是軟件將就硬件了,
makeflyeasy
5楼-- · 2020-02-11 22:47
youmu 发表于 2016-12-16 21:37
左对齐。。

哦,好的,谢谢。

一周热门 更多>