MSCAN标识符
时间:10-02
整理:3721RD
点击:
关于MSCAN标识符问题:我看到有的例程里,CAN0发送CAN0TXIDR0 = (unsigned char)(msg.id>>3);
CAN0TXIDR1 = (unsigned char)(msg.id<<5);
CAN0接收,读标识符:msg->id = (unsigned int)(CAN0RXIDR0<<3) | (unsigned char)(CAN0RXIDR1>>5);
这两句话改怎么理解?这里的msg.id是一个8位的标识符(0x01),标准帧的标识符不是11位么?这八位的标识符在标准帧的标识符寄存器里是如何分布的?特别是对于CAN0接收函数,为什么要进行移位操作?原理是什么?
CAN0TXIDR1 = (unsigned char)(msg.id<<5);
CAN0接收,读标识符:msg->id = (unsigned int)(CAN0RXIDR0<<3) | (unsigned char)(CAN0RXIDR1>>5);
这两句话改怎么理解?这里的msg.id是一个8位的标识符(0x01),标准帧的标识符不是11位么?这八位的标识符在标准帧的标识符寄存器里是如何分布的?特别是对于CAN0接收函数,为什么要进行移位操作?原理是什么?