WCH沁恒单片机
直播中

王斌

8年用户 1386经验值
私信 关注
[问答]

CH341 I2C接口只发送数据是什么原因?

先调用CH341OpenDevice(0),返回true,然后调用CH341SetStream(0,2)也返回true,再调用CH341ReadI2C(0,0xD0,0x30,data),但是输出波形上的设备地址0?设备是OK的,我验证过!
另外你们I2C通信接口是需要自己根据命令封装start,stop,out,in吗,还是直接调用CH341ReadI2C/CH341WriteI2C/CH341StreamI2C?
如果是直接使用接口CH341ReadI2C/CH341WriteI2C/CH341StreamI2C进行I2C通信,那使用
BOOL WINAPI CH341StreamI2C(ULONG iIndex,  ULONG iWriteLength,PVOIDiWriteBuffer,ULONG iReadLength, PVOID oReadBuffer );
进行多字节通行时,是把设备地址,访问地址和输入一起写入iWriteBuffer还是需要额外发送设备地址和访问地址,而这个接口只发送数据啊?


回帖(1)

田野

2022-6-28 14:58:09
您好,对于单字节读写,可直接使用如下API函数,iDevice对应上图Address Byte,iAddr对应Command Byte。相应时序如I2C信号的开始,结束等由芯片自动完成,无需额外控制。

CH341DLL可进行连续多字节读写,接口说明如下所示,设备和寄存器地址均填充在iWriteBuffer中即可。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分