S32K144 i2c master send

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

S32K144 i2c master send

1,896件の閲覧回数
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位寄存器地址后,它会再次发送设备地址,但我不需要它,你能帮我吗?

ラベル(1)
0 件の賞賛
返信
5 返答(返信)

775件の閲覧回数
binZhang01
Contributor II
你为什么喜欢使用block发送和接收函数,他有个不带block发送的函数, 还有就是我这边使用的老是判断总线忙
0 件の賞賛
返信

1,843件の閲覧回数
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 件の賞賛
返信

1,838件の閲覧回数
zyc0211
Contributor II
是的,第二次调用的时候会再次发送从设备地址,但是我并不需要他再次发送从设备地址
0 件の賞賛
返信

1,889件の閲覧回数
zyc0211
Contributor II

 

 

0 件の賞賛
返信

1,894件の閲覧回数
zyc0211
Contributor II

zyc0211_0-1699595793182.png

0 件の賞賛
返信