请教一下,我通过调用CH347StreamI2C实现I2C的读写,EC/ED是器件地址,最低位加的读写位,26寄存器地址,返回值A0实际上是27寄存器的数据,即偏离了一位,我用27读出来的是28的数据,请问这个是怎么回事呢?
另外我看介绍说也支持CH341的I2C读写,我用了,但是数据读不出来,是怎么回事呢?
请教一下,我通过调用CH347StreamI2C实现I2C的读写,EC/ED是器件地址,最低位加的读写位,26寄存器地址,返回值A0实际上是27寄存器的数据,即偏离了一位,我用27读出来的是28的数据,请问这个是怎么回事呢?
另外我看介绍说也支持CH341的I2C读写,我用了,但是数据读不出来,是怎么回事呢?
您好,使用CH347StreamI2C读写数据时,首字节为设备地址,次字节为寄存器地址,您实际发送数据应为设备地址(1B)+寄存器地址(1B)则可获取对应地址数据,API可设置读取数据长度。
CH347暂不支持CH341Read_I2C函数,您若需要读取单字节可通过CH347StreamI2C来实现。
我知道您的意思,不过您说的1B是指什么呢?下图是IIC的时序,器件地址0x76,我进行读操作,读寄存器0x26,
发0xEC 0x26 0xED,这三个指令对吗?实际也回传到数据了,不过回传的数据是寄存器0x27里面的数据,偏离了一个寄存器,请问是怎么回事呢?
CH347支持CH341Read_I2C函数 我是看一个博客上写的,现在看是不行的,那CH347还有哪些函数支持I2C读写呢?
您好,您直接发送0xEC 0x26然后读取返回值即可,CH347的I2C读写函数主要使用CH347StreamI2C。
你好方便加个好友吗 请教一些问题QQ562566281
您好,已添加QQ,有问题沟通。
我使用CH347StreamI2C函数读写AT24C02,发现iWriteBuffer数组为A0,00时可以读数据(如下图),按道理在读数据时设备位+读位=A1,我使用A1反而不能读数据是为什么?还有在使用CH347StreamI2C函数时写数据应该怎样传参呢?
您好,关于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,没找到对应的头文件。
您好,可从此处获取:/downloads/CH341PAR_ZIP.html
你好感谢你的回复,我在这链接下载的文件中,找到了CH347DLL.DLL 但是头文件是在lib文件夹下的CH347DLL.H,好像对应的是i386文件夹下的CH347DLL.LIB吧,我用labview试着导入了一下,动态链接库,好像是卡死了,一直没有反应。
您好,调用时可查看是否预处理定义已涵盖,正常导入不会存在异常的。