24C02不保存

2019-03-25 18:55发布

void main()
{
  init();
  delay_ms(10);
  while(1)
{
  write_dis(b);
  a=5;
  write_24C02(0,a);
  delay_ms(10);
  b=read_24C02(0);
  if(b==5)
  Alarm=1;
}
}  这是我24C02的程序 这样写程序可以正常运行 蜂鸣器响
但是下面这种写法24C02掉电以后蜂鸣器不响 没有读取到数据
void main()
{
  init();
  delay_ms(10);
  b=read_24C02(0);
  while(1)
{
  write_dis(b);
  a=5;
  write_24C02(0,a);
  delay_ms(10);

  if(b==5)
  Alarm=1;
}
}

此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
fxyc87
1楼-- · 2019-03-26 02:44
你要从你的I2C协议入手,检测问题
ienglgge
2楼-- · 2019-03-26 05:08
 精彩回答 2  元偷偷看……
mzb2012
3楼-- · 2019-03-26 08:32
建议一步一步来调试,不能还不会走就跑起来吧

第一步.用串口将读到的输打出来,看看是什么数据,判断是没写成功,还是没读成功;

第二部 分析读操作或者写操作的问题
gs001588
4楼-- · 2019-03-26 11:32

试一下,下面代码。
void main()
{
int i=10;
  init();
  delay_ms(10);
  b=read_24C02(0);
  delay_ms(10);   ///-------------------------------------------------
  while(i--)
{
  write_dis(b);
  a=5;
  write_24C02(0,a);
  delay_ms(10);

  if(b==5)
  Alarm=1;
}
}
shimingyan1992
5楼-- · 2019-03-26 14:43
ienglgge 发表于 2016-12-6 12:20
先不论你的函数init();,write_24C02等是否正确,思路都不清晰啊。第二程序,先读存储器,得到数,再写存储 ...

解决了 是我I2C读取和写入的太频繁了 没有延时     谢谢
shimingyan1992
6楼-- · 2019-03-26 16:04
解决了 是我I2C读取和写入的太频繁了 没有延时     谢谢各位

一周热门 更多>