请问CH341WriteRead是读写I2C的吗? 在哪里指定要读写的从设备地址? ULONG iIndex, // ULONG iWriteLength PVOID iWriteBuffer ULONG iReadStep, ULONG iReadTimes, PULONG oReadLength, PVOID oReadBuffer
不是! CH341WriteRead是读写usb数据流(数据透明) 如果想使用i2c功能,请使用一下API BOOL WINAPI CH341ReadI2C( // 从I2C接口读取一个字节数据 ULONG iIndex, // 指定CH341设备序号 UCHAR iDevice, // 低7位指定I2C设备地址 UCHAR iAddr, // 指定数据单元的地址 PUCHAR oByte ); // 指向一个字节单元,用于保存读取的字节数据
BOOL WINAPI CH341WriteI2C( // 向I2C接口写入一个字节数据 ULONG iIndex, // 指定CH341设备序号 UCHAR iDevice, // 低7位指定I2C设备地址 UCHAR iAddr, // 指定数据单元的地址 UCHAR iByte ); // 待写入的字节数据
BOOL WINAPI CH341SetStream( // 设置串口流模式 ULONG iIndex, // 指定CH341设备序号 ULONG iMode ); // 指定模式,见下行 // 位1-位0: I2C接口速度/SCL频率, 00=低速/20KHz,01=标准/100KHz(默认值),10=快速/400KHz,11=高速/750KHz // 位2: SPI的I/O数/IO引脚, 0=单入单出(D3时钟/D5出/D7入)(默认值),1=双入双出(D3时钟/D5出D4出/D7入D6入) // 位7: SPI字节中的位顺序, 0=低位在前, 1=高位在前 // 其它保留,必须为0
BOOL WINAPI CH341StreamI2C( // 处理I2C数据流,2线接口,时钟线为SCL引脚,数据线为SDA引脚(准双向I/O),速度约56K字节 ULONG iIndex, // 指定CH341设备序号 ULONG iWriteLength, // 准备写出的数据字节数 PVOID iWriteBuffer, // 指向一个缓冲区,放置准备写出的数据,首字节通常是I2C设备地址及读写方向位 ULONG iReadLength, // 准备读取的数据字节数 PVOID oReadBuffer ); // 指向一个缓冲区,返回后是读入的数据