请教一下在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);
这么设置是为什么呢?请大神帮忙解答下,谢谢了!!!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>