ch341与labview通信出现问题

想通过labview驱动ch341控制I2C给电源模块写入命令,以输出不同电压,用网上下载的CH341-I2C驱动写入命令,但是写入的命令sda输出感觉不对,调用时顺序是:CH341_OpenDevice>CH341SetStream>CH341WriteI2c2017-11-03 163556.png2017-11-03 163744.pnglabview写入i2c.png>CH341_CloseDevice求大神指导下哪里的问题,电源模块设备地址30h,寄存器地址23h,控制电源模块输出电压命令11h(10h关闭输出命令)下面俩图分别为正常的sda波形和我用labview写入11h命令控制sda输出的波形,明显数据少了很多


                                     想通过labview驱动ch341控制I2C给电源模块写入命令,以输出不同电压,用网上下载的CH341-I2C驱动写入命令,但是写入的命令sda输出感觉不对,调用时顺序是:CH341_OpenDevice>CH341SetStream>CH341WriteI2c            

您好:

    使用流程是没有问题的。只是WriteI2C函数只能一次写入一个字节。连续写入多个字节可以使用函数:

BOOLWINAPICH341StreamI2C(  // 处理I2C数据流,2线接口,时钟线为SCL引脚,数据线为SDA引脚(准双向I/O),速度约56K字节

ULONGiIndex,  // 指定CH341设备序号

ULONGiWriteLength,  // 准备写出的数据字节数

PVOIDiWriteBuffer,  // 指向一个缓冲区,放置准备写出的数据,首字节通常是I2C设备地址及读写方向位

ULONGiReadLength,  // 准备读取的数据字节数

PVOIDoReadBuffer );  // 指向一个缓冲区,返回后是读入的数据

参数定义见注释,有问题及时与我们联系。


万分感谢 确实是这样 换了函数之后立马可以了 谢谢谢谢


请问楼主能不能举个例子呢,对与上面那个函数的写入是如何传参的?比如往 A0 地址的00位写入09,这样应该怎样传参iWriteBuffer,可以告诉我一下吗?现在调试遇到问题,没有出现想要的结果。


如果是往某个地址写入数据,iWriteBuffer第一个字节填地址,后面填入要写入的内容就可以。


比如 往地址A0的00 和 01位分别填入 2 3,那意思是说需要写 iWriteBuffer A0 2 3, iWriteLength 3,这样?

如果有些位需要写入有些位不需要写入呢?


如果需要往A2 的78H位写入11H,7BH位写入EE,这样子应该怎么传参呢?


A2 7B 11 与 A2 7B EE


请问Labview 多字节IIC读取 CH341  怎么实现呢?


您好,关于CH341读取I2C多字节,请使用以下流程:USBIO_Opendevice--->USBIO_StreamI2C-->USBIO_CloseDevice。

StreamI2C函数和“WriteI2C及ReadI2C”,选用前者可读写多字节,后者读写单字节。


只有登录才能回复,可以选择微信账号登录