CH582硬件IIC多次讀寫數(shù)據(jù)流程是不是都需要例子中的這一段,還是說初始化完一次之后就可以只調(diào)用write_to和read_from函數(shù),i2c_app_init要不要多次初始化了
您好,您圈出的(包括上面一行判忙的查詢)是查詢方式的硬件IIC主機(jī)。如果是用查詢方式,需要發(fā)從機(jī)地址->發(fā)從機(jī)內(nèi)部的寄存器/存儲(chǔ)地址->讀/寫的具體內(nèi)容,那么每次查詢前都要調(diào)用圈出的代碼段。
圈出的代碼塊下方是中斷方式的IIC主機(jī),也是上述讀/寫流程,不過是借助中斷來判斷當(dāng)前的狀態(tài)。i2c_app_init只需要調(diào)用一次。
查詢方式和中斷方式,二選一即可,選用中斷方式就直接參考圈出代碼下方的代碼就可以。
請(qǐng)問下查詢方式和中斷方式的選擇是怎么配置的,@TECH_JW
查詢方式可以參考下篇博客,除了最基礎(chǔ)的拉高拉低時(shí)序,每一步都要查詢標(biāo)志判斷進(jìn)度
硬件IIC的7位從機(jī)地址查詢方式讀寫參考代碼 - JayWell - 博客園 (cnblogs.com)
中斷方式下,用i2c_app_init配置中斷使能和狀態(tài)機(jī)初始狀態(tài);中斷觸發(fā)后,中斷服務(wù)函數(shù)中查詢標(biāo)志、狀態(tài)機(jī)來判斷接下來進(jìn)行哪些操作,具體處理參考例程的app_i2c.c。
從博客抄了以下mpu6050和eeprom的連續(xù)讀寫驅(qū)動(dòng),如上測(cè)試代碼,都會(huì)卡死
使用i2capp的驅(qū)動(dòng)可以讀出數(shù)據(jù),但是不清楚如何設(shè)置讀起始地址,目前讀取的數(shù)據(jù)是不對(duì)的
測(cè)試設(shè)備是FT6236,addr和狀態(tài)地址都是對(duì)的
@TECH_JW硬件上必須外接上拉電阻嘛
是否需要上拉,主要看IIC從機(jī)手冊(cè),從機(jī)手冊(cè)要求有上拉就一定要加上拉電阻。
從機(jī)手冊(cè)里沒有要求的話,加5~10K的電阻上拉到V33一般也是可以的。