此前我已经用单片机与AT24C02测试过了,单片机通讯程序是ok的;BA27541与上位机通讯也是ok的。但是我使用单片机与BQ27541进行IIC通讯,写地址0xAA,写入数据0x08,再读地址0xAB,得到的数据是0x02,显然是错误的。而且不论我写入什么数据,读地址0xAB,得到的数据都是0x02.请问我有那个步骤操作错误吗,还是说我漏了哪些操作。
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
此前我已经用单片机与AT24C02测试过了,单片机通讯程序是ok的;BA27541与上位机通讯也是ok的。但是我使用单片机与BQ27541进行IIC通讯,写地址0xAA,写入数据0x08,再读地址0xAB,得到的数据是0x02,显然是错误的。而且不论我写入什么数据,读地址0xAB,得到的数据都是0x02.请问我有那个步骤操作错误吗,还是说我漏了哪些操作。
您好,你说用EV2400可以读出来,证明您的硬件等没有什么问题, 主要在软件上。那么用EV2400只读取一个数,如电池电压,然后用示波器把i2c的波形抓取下来。再抓一下自己软件编写的的i2c波形,同样读取这个电压,看看两者有什么区别,很快就能定位到问题。比如ACK信号有没有?发送地址对不对?发送命令时序对不对等。