我按照INA219读取寄存器的步骤操作:start->发送INA219地址->发送需读取的寄存器地址->start->发送INA219地址+0x01(让从机知道我需要读取数据)->
读取出高8位->发送应答->读取低8位->不应答->stop
但是读出高8位后,主机返回应答信号后,从机不再返回低8位,读不到低8位数据。
请问各位大侠,这是什么情况?
xyz549040622:
1.你现在读出来的高8位的数据是否是正确的呢?读的是哪个寄存器的数据,可以试试读下Configuration寄存器的数据。
2.准确的读取寄存器的操作步骤应该是:start->发送INA219地址->读应答->发送需读取的寄存器地址->读应答->stop->start->发送INA219地址+0x01(0x01是R的指令)->读应答->读取出高8位->发送应答->读取低8位->不应答->stop.
Kailyn Chen:
能否把时序图附上看下?INA219的地址写的是什么?
user5907381:
回复 xyz549040622:
大佬我也遇到这个问题,低8位读的全是0
高8位完全没问题
配置寄存器,BUS电压,差分电压,电流寄存器,全是低8位读不到,高8位倒是正常
xyz549040622:
回复 user5907381:
抓波形,还是感觉是时序问题导致的,拿逻辑分析仪抓你全部的波形看看。