ccs debug时,发现宏HWREGB()的作用类似指向char(8-bit)类型的指针,我尝试将该宏替换成(*(volatile unsigned char *)(address)),但从debug结果来看,该修改并未成功(以16-bit进行访问),请问这需要在某些文件定义数据类型吗?
Yale Li:
Hi JIANG HAO,
这个定义本身就是16bits吧?
,
JIANG HAO:
我在debug时,通过观察register(IF1DATA)发现这个宏是按照8bit访问的,这也符合CAN数据包中数据长度(1~8byte)。具体现象表现为:当IF1DATA的offset为0时,往该寄存器的第0个byte写入数据;当IF1DATA的offset为1时,往该寄存器的第1个byte写入数据。读的过程和写类似
,
JIANG HAO:
该宏出现在can.h的CAN_writeDataReg()函数和CAN_readDataReg()函数中