logo

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函数只能一次写入一个字节。连续写入多个字节可以使用函数:

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

ULONG iIndex,  // 指定CH341设备序号

ULONG iWriteLength,  // 准备写出的数据字节数

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

ULONG iReadLength,  // 准备读取的数据字节数

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

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

USB转接芯片/PCI&PCIE控制与转接芯片/安卓及Linux技术支持。联系方式:张工 025-52638360/18951773290/zhangj@wch.cn

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


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

这人很懒,什么都没留下

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

USB转接芯片/PCI&PCIE控制与转接芯片/安卓及Linux技术支持。联系方式:张工 025-52638360/18951773290/zhangj@wch.cn

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

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

这人很懒,什么都没留下

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

这人很懒,什么都没留下

A2 7B 11 与 A2 7B EE

USB转接芯片/PCI&PCIE控制与转接芯片/安卓及Linux技术支持。联系方式:张工 025-52638360/18951773290/zhangj@wch.cn
只有登录才能回复,可以选择微信和github账号登录