【发布时间】:2015-03-30 08:35:17
【问题描述】:
我正在与具有 24 位地址和 16 位偏移的 SPI 音频记录 IC 通信。我制作了一个结构来从该设备读取/写入数据,
命令 - 1 个字节 地址 - 3 字节(24 位) 偏移地址 - 2 字节(16 位)
在模拟过程中(在 proteous 中),发现第 4 字节(地址的 MSB)与第 5 字节(偏移的 LSB)重叠。
以下是代码。请帮助我需要对代码进行哪些更改。
typedef struct {
unsigned char Command:8 ;
unsigned long Addr:24;
unsigned int Offset:16;
} ISD_Struct;
ISD_Struct ISD_Rec;
void main()
{
address = 0x563412 ;
OFFST = 0x9A78 ;
ISD_Rec.Command = 0xBC;
ISD_Rec.Addr = address;
ISD_Rec.Offset = OFFST;
Write_SPI(&ISD_Rec,6); //sending (1byte command + 3byte address + 2 byte offset)
//Delay_ms(1000);
}
谢谢
【问题讨论】:
-
我为 char 命令创建了一个联合:8;和长地址:24;带有长变量。但我无法控制 MSB(第 4 个字节)。
标签: c microcontroller spi