您好,CH341的I2C固定作为主机,是可以使用如上API直接和作为I2C从机的MCU通讯的。USBIO_WriteI2C接口可以成功,则:
BOOL WINAPI USBIO_StreamI2C( // 处理I2C数据流,2线接口,时钟线为SCL引脚,数据线为SDA引脚(准双向I/O),速度约56K字节
ULONG iIndex, // 指定CH341设备序号
ULONG iWriteLength, // 准备写出的数据字节数
PVOID iWriteBuffer, // 指向一个缓冲区,放置准备写出的数据,首字节通常是I2C设备地址及读写方向位
ULONG iReadLength, // 准备读取的数据字节数
PVOID oReadBuffer ); // 指向一个缓冲区,返回后是读入的数据
接口函数中的iWriteBuffer需要和USBIO_WriteI2C的设备地址和单元地址相同。建议Arduino代码加入串口调试,先定位问题出在Arduino的发送还是接收方向。也可以使用USBIO_ReadI2C接口测试单字节接收是否可成功。
您好,CH341的I2C固定作为主机,是可以使用如上API直接和作为I2C从机的MCU通讯的。USBIO_WriteI2C接口可以成功,则:
BOOL WINAPI USBIO_StreamI2C( // 处理I2C数据流,2线接口,时钟线为SCL引脚,数据线为SDA引脚(准双向I/O),速度约56K字节
ULONG iIndex, // 指定CH341设备序号
ULONG iWriteLength, // 准备写出的数据字节数
PVOID iWriteBuffer, // 指向一个缓冲区,放置准备写出的数据,首字节通常是I2C设备地址及读写方向位
ULONG iReadLength, // 准备读取的数据字节数
PVOID oReadBuffer ); // 指向一个缓冲区,返回后是读入的数据
接口函数中的iWriteBuffer需要和USBIO_WriteI2C的设备地址和单元地址相同。建议Arduino代码加入串口调试,先定位问题出在Arduino的发送还是接收方向。也可以使用USBIO_ReadI2C接口测试单字节接收是否可成功。
举报