CH347 Labview调用IIC异常

请教一下,我通过调用CH347StreamI2C实现I2C的读写,EC/ED是器件地址,最低位加的读写位,26寄存器地址,返回值A0实际上是27寄存器的数据,即偏离了一位,我用27读出来的是28的数据,请问这个是怎么回事呢?

image.png

image.png


另外我看介绍说也支持CH341的I2C读写,我用了,但是数据读不出来,是怎么回事呢?

image.png

image.png

您好,使用CH347StreamI2C读写数据时,首字节为设备地址,次字节为寄存器地址,您实际发送数据应为设备地址(1B)+寄存器地址(1B)则可获取对应地址数据,API可设置读取数据长度。

CH347暂不支持CH341Read_I2C函数,您若需要读取单字节可通过CH347StreamI2C来实现。


我知道您的意思,不过您说的1B是指什么呢?下图是IIC的时序,器件地址0x76,我进行读操作,读寄存器0x26,

0xEC 0x26 0xED,这三个指令对吗?实际也回传到数据了,不过回传的数据是寄存器0x27里面的数据,偏离了一个寄存器,请问是怎么回事呢?

CH347支持CH341Read_I2C函数  我是看一个博客上写的,现在看是不行的,那CH347还有哪些函数支持I2C读写呢?

image.png


您好,您直接发送0xEC 0x26然后读取返回值即可,CH347的I2C读写函数主要使用CH347StreamI2C。


你好方便加个好友吗  请教一些问题QQ562566281


您好,已添加QQ,有问题沟通。


我使用CH347StreamI2C函数读写AT24C02,发现iWriteBuffer数组为A0,00时可以读数据(如下图),按道理在读数据时设备位+读位=A1,我使用A1反而不能读数据是为什么?还有在使用CH347StreamI2C函数时写数据应该怎样传参呢?

屏幕截图 2024-06-07 144921.png


您好,关于StreamI2C接口函数的传参可以参考如下博客:https://blog.csdn.net/WCH_TechGroup/article/details/132173778 


CH347StreamI2C 函数说明

iWriteLength:I2C Write的字节长度

iWriteBuffer:I2C Write的缓冲区内容,该缓冲区内容会经过SDA信号线对外输出。首字节地址通常是设备地址及读写位。如设备地址是0x50,I2C写操作时首字节为:0x50 << 1 = 0xA0,I2C读操作时首字节为:0x50 << 1 | BIT(0) = 0xA1。

iReadLength:I2C Read的字节长度

oReadBuffer:API成功返回后,其内容是从SDA信号线上采集的数据。

返回值:当设备成功产生ACK应答,并且应用层参数传递无误,API返回成功,否则失败。




我想用labview 导入CH 347的dll库。请问如何找到dll对应的头文件?我从官网下载的文件中dll的路径是:\CH341PAR\WIN 1X\CH347DLL.DLL,没找到对应的头文件。



您好,可从此处获取:https://www.wch.cn/downloads/CH341PAR_ZIP.html 



你好感谢你的回复,我在这链接下载的文件中,找到了CH347DLL.DLL 但是头文件是在lib文件夹下的CH347DLL.H,好像对应的是i386文件夹下的CH347DLL.LIB吧,我用labview试着导入了一下,动态链接库,好像是卡死了,一直没有反应。


您好,调用时可查看是否预处理定义已涵盖,正常导入不会存在异常的。


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