CH341缓冲区长度32字节,I2C消息最长只有26字节,怎样收发大于26字节的消息?
您好,CH341的I2C操作。对于单字节读写,可使用如下API函数,iDevice对应上图Address Byte,iAddr对应Command Byte
此外,CH341DLL还提供了连续多字节读写的接口API,如下所示:
该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信号的开始,结束等由芯片自动完成,无需额外控制。
CH341DLL可进行连续多字节读写,接口说明如下所示,设备和寄存器地址均填充在iWriteBuffer中即可。