我在飞思卡尔官网上下载了是s12的数据手册
查看了寄存器,保存ID的寄存器有两个,都是8位的寄存器
而标准ID只有11位,高八位放在第一个寄存器,
剩下的三位保存在第二个寄存器的高三位,剩下的位保存RTE,IDE,剩下的都是预留位
CAN1TXIDR0 = (unsigned char)(msg.id>>3);这里右移三位且强制转换位UCHAR 相当于把ID
高8位保存到CAN1TXIDR0变量里
CAN1TXIDR1 = (unsigned char)(msg.id<<5);至于这个为啥左移5位就不是很清楚了,
楼主搞明白了分享一下啊
我在飞思卡尔官网上下载了是s12的数据手册
查看了寄存器,保存ID的寄存器有两个,都是8位的寄存器
而标准ID只有11位,高八位放在第一个寄存器,
剩下的三位保存在第二个寄存器的高三位,剩下的位保存RTE,IDE,剩下的都是预留位
CAN1TXIDR0 = (unsigned char)(msg.id>>3);这里右移三位且强制转换位UCHAR 相当于把ID
高8位保存到CAN1TXIDR0变量里
CAN1TXIDR1 = (unsigned char)(msg.id<<5);至于这个为啥左移5位就不是很清楚了,
楼主搞明白了分享一下啊
举报