您好,我想使用i2C来控制音频芯片。音频芯片的设备地址是0x3B,但寄存器地址很多,比如0xF890、0xF400,都是16位,而不是8位。那么如何使用LPI2C_DRV_MasterSendDataBlocking进行通信。
uint8_t reg_address[2];
reg_address[0] = 地址 >> 8;
reg_address[1] = 地址 &0xFF;
LPI2C_DRV_MasterSendDataBlocking(INST_LPI2C1, reg_address, 2, 真, 10);
LPI2C_DRV_MasterSendDataBlocking(INST_LPI2C1, pData, 长度, true, 10);
发送16位寄存器地址后,它会再次发送设备地址,但我不需要它,你能帮我吗?
"发送16位寄存器地址后,它会再次发送设备地址",你意思是说在第二次调用发送的时候主机会再发一次从设备地址吗?
uint8_t reg_address[4];
reg_address[0] = 地址 >> 8;
reg_address[1] = 地址 &0xFF;
reg_address[2] = pData >>8;
reg_address[3] = pData & 0xff;
LPI2C_DRV_MasterSendDataBlocking(INST_LPI2C1, reg_address, 4, 真, 1000);
示波器看下数据顺序对不对,