關(guān)于CH347F I2C API CH347StreamI2C使用問題---已解決

應(yīng)用手冊(cè)中關(guān)于347 I2C讀寫的API CH347StreamI2C描述如下:

CH347StreamI2C( iIndex,iWriteLength,iWriteBuffer,iReadLength,oReadBuffer)

有2個(gè)疑問請(qǐng)教下:

1)CH347StreamI2C函數(shù)如何區(qū)分本次操作是寫數(shù)據(jù)還是讀數(shù)據(jù)的?是根據(jù)iWriteBuffer中首字節(jié)bit0的讀寫標(biāo)志位,還是iReadLength 的長度值,比如填寫0的時(shí)候表示只寫,大于0表示讀?

2)我的理解iWriteBuffer 中存放需要發(fā)送的數(shù)據(jù),首字節(jié)為7bit設(shè)備地址+1bit讀寫標(biāo)志,第二字節(jié)為寄存器地址,如果是寫操作第3字節(jié)開始為寫的數(shù)據(jù)。我將iWriteBuffer[0]分別設(shè)置為0x2和0x3代表對(duì)0x1地址的設(shè)備進(jìn)行寫和讀的操作,但示波器中看到bit 0的讀寫標(biāo)志位無論給什么數(shù)一直為高電平不變,前7bit會(huì)隨給不同的數(shù)而變化,示波器中讀到的值可以與iWriteBuffer[0]高7bit的值對(duì)上。如何才能設(shè)置347F I2C發(fā)送數(shù)據(jù)的讀寫標(biāo)志位呢?


我已自己搞定了。有2個(gè)問題1)i2c協(xié)議在讀的時(shí)候并不是直接發(fā)送讀而是會(huì)先發(fā)送寫,然后再發(fā)送讀也就是設(shè)備地址會(huì)被發(fā)送兩次。


2)的我將寫buff長度設(shè)為1了。發(fā)現(xiàn)設(shè)為寫長度為1時(shí)首字節(jié)的讀寫標(biāo)志一直是1(讀).長度>1后首字節(jié)標(biāo)志位會(huì)變?yōu)?。讀寫操作正常了


您好,讀寫標(biāo)志位根據(jù)讀寫長度是否存在來自動(dòng)添加,若實(shí)現(xiàn)單獨(dú)讀則寫長度傳入0,寫buffer為NULL即可,單獨(dú)寫亦然。


只有登錄才能回復(fù),可以選擇微信賬號(hào)登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频