CH341緩沖區(qū)長度32字節(jié),I2C消息最長只有26字節(jié),怎樣收發(fā)大于26字節(jié)的消息?
您好,CH341的I2C操作。對于單字節(jié)讀寫,可使用如下API函數(shù),iDevice對應上圖Address Byte,iAddr對應Command Byte
此外,CH341DLL還提供了連續(xù)多字節(jié)讀寫的接口API,如下所示:
該API的發(fā)送和接收長度支持最大4K。關(guān)于長度問題,底層會自動分包,也即超過端點大小長度時會自動拆分成多個USB數(shù)據(jù)包傳輸。用戶直接使用即可。
謝謝!那么用類似方法Linux下用usb_bulk_msg分包收發(fā)也可以吧。
應用層的lib已經(jīng)做了自動分包處理。用戶無需關(guān)注分包和組包細節(jié),直接調(diào)用我們提供的lib庫接口函數(shù)即可。
調(diào)用CH341OpenDevice(0)后調(diào)用CH341ReadI2C(0,0xD0,0x30,data),輸出波形上的設備地址0?設備是OK!
另外你們I2C通信接口是需要自己根據(jù)命令封裝start,stop,out,in嗎,還是直接調(diào)用CH341ReadI2C/CH341WriteI2C/CH341StreamI2C?
您好,對于單字節(jié)讀寫,可直接使用如下API函數(shù),iDevice對應上圖Address Byte,iAddr對應Command Byte。相應時序如I2C信號的開始,結(jié)束等由芯片自動完成,無需額外控制。
CH341DLL可進行連續(xù)多字節(jié)讀寫,接口說明如下所示,設備和寄存器地址均填充在iWriteBuffer中即可。