[PIC单片机] PIC16F689读写EEPROM问题

[复制链接]
323|8
 楼主 | 2017-12-29 16:13 | 显示全部楼层 |阅读模式
pic16f689读写EEPROM时,想将地址等参数写入EEPROM,断电或者重写程序时再从EEPROM读取至,或者通过串口可以配置相应地址。但是问题来了,我在用
while(1)
{
    writeEEPROM(0x03,0x02);//0x03表示地址,0x02表示写入的数据
    delay(10);
    d=readEEPROM(0x03);//读取地址0x03的数据,给d
}
运行结果:d=0x02

程序改成
while(1)
{
    writeEEPROM(0x03,0x02);//0x03表示地址,0x02表示写入的数据
}
断电再上电,
然后下载程序
while(1)
{
    d=readEEPROM(0x03);//读取地址0x03的数据,给d
}

运行,发现d=0xff。

我理解的是第一次写入,然后无论掉电还是重新下载程序,EEPROM的数据不变,在读取时应该能读回0x03对应的值0x02啊。但是结果不是这样。有谁帮我分析一下吗?因为我在C8051程序是这么个思路写的,没有什么问题。改成PIC没有调通。大侠们帮分析指导一下。谢谢
 楼主 | 2017-12-30 09:57 | 显示全部楼层
没人指导一下
| 2017-12-30 13:17 | 显示全部楼层
写EEPROM,需要放到while(1)中一直写??????
 楼主 | 2017-12-31 11:43 | 显示全部楼层
yklstudent 发表于 2017-12-30 13:17
写EEPROM,需要放到while(1)中一直写??????

有时会需要啊,会改变EEPROM的值啊?主要是怎么判断写没写进去
| 2017-12-31 11:55 | 显示全部楼层
你这种写法,EEPROM估计用不久
 楼主 | 2017-12-31 14:57 | 显示全部楼层
yklstudent 发表于 2017-12-31 11:55
你这种写法,EEPROM估计用不久

我只是实验一下,实际用不是这样的。回答一下我的问题呗。。。。
| 2017-12-31 18:42 | 显示全部楼层
伍戈123 发表于 2017-12-31 14:57
我只是实验一下,实际用不是这样的。回答一下我的问题呗。。。。

不考虑过这个实验有没有可能有问题?
 楼主 | 2018-1-2 08:44 | 显示全部楼层
yklstudent 发表于 2017-12-31 18:42
不考虑过这个实验有没有可能有问题?

 楼主 | 2018-1-3 15:12 | 显示全部楼层
知道怎么回事了,楼上说的那样,在while中写是对EEPROM不利的。不过这么写理论上是没毛病的。也没有掉电丢失,是我在下载程序时每次都擦除了代码导致把EEPROM也擦除了,所以调整配置就好了,此处调整配置位和设置下载PICKIT3配置
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式
我要创建版块 申请成为版主

论坛热帖

关闭

热门推荐上一条 /6 下一条

分享 快速回复 返回顶部 返回列表