CH341 I2C消息包长

CH341缓冲区长度32字节,I2C消息最长只有26字节,怎样收发大于26字节的消息?

您好,CH341的I2C操作。对于单字节读写,可使用如下API函数,iDevice对应上图Address Byte,iAddr对应Command Byte

image.png

此外,CH341DLL还提供了连续多字节读写的接口API,如下所示:image.png

该API的发送和接收长度支持最大4K。关于长度问题,底层会自动分包,也即超过端点大小长度时会自动拆分成多个USB数据包传输。用户直接使用即可。


谢谢!那么用类似方法Linux下用usb_bulk_msg分包收发也可以吧。


应用层的lib已经做了自动分包处理。用户无需关注分包和组包细节,直接调用我们提供的lib库接口函数即可。


调用CH341OpenDevice(0)后调用CH341ReadI2C(0,0xD0,0x30,data),输出波形上的设备地址0?设备是OK!

另外你们I2C通信接口是需要自己根据命令封装start,stop,out,in吗,还是直接调用CH341ReadI2C/CH341WriteI2C/CH341StreamI2C?


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

image.png

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



只有登录才能回复,可以选择微信账号登录