IIC总线51编程,程序写出来不行啊,问题在哪里啊?

IIC总线51编程,程序写出来不行啊,问题在哪里啊?,第1张

没有仔细看你的程序,写不进去通常有几种原因:

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里面的走的

以上 是我的理解 可能有所偏差


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11351004.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存