S32K144 i2c master send

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

S32K144 i2c master send

1,098 Views
zyc0211
Contributor II
 

您好,我想使用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位寄存器地址后,它会再次发送设备地址,但我不需要它,你能帮我吗?

Labels (1)
0 Kudos
Reply
4 Replies

1,045 Views
Senlent
NXP TechSupport
NXP TechSupport

Hi@zyc0211

"发送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);

示波器看下数据顺序对不对,

0 Kudos
Reply

1,040 Views
zyc0211
Contributor II
是的,第二次调用的时候会再次发送从设备地址,但是我并不需要他再次发送从设备地址
0 Kudos
Reply

1,091 Views
zyc0211
Contributor II

 

 

0 Kudos
Reply

1,096 Views
zyc0211
Contributor II

zyc0211_0-1699595793182.png

0 Kudos
Reply