极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 11810|回复: 3

【求教】发个奇怪的问题,麻烦大家进来看看

[复制链接]
发表于 2017-5-24 14:03:05 | 显示全部楼层 |阅读模式
本帖最后由 GGG1101 于 2017-5-24 14:06 编辑

我今天在家玩ATMEGA328P最小系统里面EEPROM的时候,出现一个很奇怪的问题。是这样的
我首先在EEPROM地址0到3每个地写了一个1。然后我就把程序烧进了最小系统,我用的是USBTINYISP下载器。接下来我又写了一个读0到3地址数据的程序,写好了烧进去就,在液晶显示屏上打印出来,但是打印的全部是255,不知道怎么回事,我明明写的是4个1,结果变成4个255.后来我又换了一个方法。往EEPROM0到3这4个地址每个地址写一个1,接下来就从4个地址里面读,先写后读,都在一个setup里面完成,就用一个程序,不和第一次一样分别写和读。然后我把程序烧进去了。显示屏上面显示的是4个1111.是正确的。 那为什么先写后读分2个程序烧和在一个程序里面完成写和读结果不一样,求大神回复
回复

使用道具 举报

发表于 2017-5-25 10:26:22 | 显示全部楼层
事情可能是这样的:

AVR烧录软件一般是:擦除-》校空-》写入-》回读校验,这么几个过程。擦除的时候,AVR默认会把Flash和EEPROM一起擦除了。我们知道这些个NVRAM擦除实际上都是写0xFF。就是你看到的255。

解决办法:AVR的有个熔丝位,功能就是“擦除时保留EEPROM的信息。” 找它!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-5-25 10:41:04 | 显示全部楼层
谢谢哈,大神
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-5-25 10:41:17 | 显示全部楼层
maidoo 发表于 2017-5-25 10:26
事情可能是这样的:

AVR烧录软件一般是:擦除-》校空-》写入-》回读校验,这么几个过程。擦除的时候,AV ...

谢谢哈,大神
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-25 21:29 , Processed in 0.037130 second(s), 18 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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