1.总线时序控制不当或电平不当,我留意到你是用P2口的两只脚来做连接,不知道你有没有接上拉电阻,是否符合时序就靠你自己来详细核对了.
2.24C02的地址译码引脚的连接方式和程序中的IIC命令里的"芯片地址"不匹配.
3.写动作结束后需要10毫秒等待时间,如果提前去读,则会得不到响应.
4.24C01芯片已坏或者CPU有关引脚失效.
ReadAddr是个16bit的数据,可分为高8bit和低8bit两个可能:
1.高8位为寄存器地址的高8位,低8位为寄存器地址的低8位。就像if里面走的
2.高8位为从机地址(slave地址)的一部分,也是7位的slave地址(所以要左移一位(ReadAddr/256)<<1),而且是以0xA0为基址的从机地址,所以从机地址应该是:(0XA0+((ReadAddr/256)<<1)),低8位为寄存器地址的低8位。就像else里面的走的
以上 是我的理解 可能有所偏差
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)