DSP C2000系列中8位数据的读写
DSP C2000中char占2个字节
最近在用TMS320F28335的eCAN功能,MailBox只能收发BYTE类型的数据。
由于头文件中没有定义BYTE类型的数据,所以刚开始想用unsigned char
来声明一个8位的变量,如下:
#define Uint8 unsigned char
Uint8 ucData;
下载好程序后,跑仿真的时候发现unsigned char
编译后竟然单独占用2个字节,在网上看大家说是因为DSP 没有8位的寄存器,只有16位寄存器引起的。
8位数据读写的目的
之前eCAN的数据发送程序中,如果需要发送16位数据,数据与MailBox的数据寄存器关联方式如下:
//Send data
unsigned short usTxData, usRxData;
Mailbox->MDL.byte.BYTE0 = usTxData& 0xFF;
Mailbox->MDL.byte.BYTE1 = (usTxData>> 8) & 0xFF;
//receive data
usRxData = (Mailbox