我用CH341做了一塊板準備是用來做產(chǎn)品上USB-I2C的控制器,目前我用DLL中附帶的CH341ReadI2C,H341WriteI2C命令可以通過LABVIEW來控制8位輸出的芯片并能得到準確的輸入輸出,但是對一些輸出結(jié)果是16位的(需要連續(xù)讀2個字節(jié)),這兩個命令就沒有辦法了。 想請問下對應(yīng)這類應(yīng)用我該通過什么樣的方式來操作?CH341StreamI2C??? 這個命令上的PVOID iWriteBuffer,,PVOID oReadBuffer,這兩個參數(shù)怎么理解?另外PVOID需要設(shè)為什么類型?字符串?數(shù)組?
BOOL WINAPI CH341StreamI2C( // 處理I2C數(shù)據(jù)流,2線接口,時鐘線為SCL引腳,數(shù)據(jù)線為SDA引腳(準雙向I/O),速度約56K字節(jié) ULONG iIndex, // 指定CH341設(shè)備序號 ULONG iWriteLength, // 準備寫出的數(shù)據(jù)字節(jié)數(shù) PVOID iWriteBuffer, // 指向一個緩沖區(qū),放置準備寫出的數(shù)據(jù),首字節(jié)通常是I2C設(shè)備地址及讀寫方向位 ULONG iReadLength, // 準備讀取的數(shù)據(jù)字節(jié)數(shù) PVOID oReadBuffer ); // 指向一個緩沖區(qū),返回后是讀入的數(shù)據(jù)
iWriteBuffer是發(fā)送緩沖區(qū),oReadBuffer是接受緩沖區(qū),在調(diào)用之前要初始化iWriteBuffer,里面放準備發(fā)送的數(shù)據(jù),oReadBuffer是字符數(shù)字,用來接受數(shù)據(jù);PVOID就是 void *的別名,可以理解成任何類型的指針,一般是字符數(shù)組;WINAPI是STDCALL的別名