独闷闷网

 找回密码
 立即注册
搜索
查看: 11074|回复: 6
收起左侧

[原创] 把掉电保存的数据存进单片机内部flash,重新烧录程序时这些数据会丢失吗?已解答。

[复制链接]
发表于 2015-2-4 12:54:13 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本帖最后由 jianhong_wu 于 2015-2-4 13:06 编辑

威-广州:
比如说,我这次对单片机内部flash某一扇区的一个单元写了1进去,用一个变量,读取出来并且在液晶上显示,这一步没问题,但是我把写数据这段代码注释掉,重新编译烧录进单片机,那么读出来的数据就是0了。

鸿哥-深圳:
单片机重新烧录程序,内部的Flash可能会重新擦除的。我以前用pic18f4520这个单片机,它单片机内部的EEPROM数据会被擦除的,所以我推测Flash也一样。所以针对这种情况恐怕只能用外围的Flash芯片存储数据了。



Inc-东莞:
STM32也会用到内部的flash作为存储空间,他其刷程序,flash不会掉。想这不让flash不被擦,使用iap的方式就行了。一般没有特殊设置,烧录会整个flash都刷掉。

威-广州:
你说的是针对stm32吧?



Inc-东莞:
针对个毛,大把单片机都支持iap。

威-广州:
我在中颖手册里头,没看到iap的字眼

Inc-东莞:
切,你用的连20位ad都有,iap居然没有,你问问fae吧

鸿哥-深圳:
IAP一般是用在仿真器的单片机里的比较多。


Inc-东莞:
IAP我们也叫bootloader。这个具体最好是问问fae。一般支持仿真的芯片都支持的。例如stm32,iap系列的stc,avr之类的。

乐于分享,勇于质疑!
发表于 2015-2-4 12:56:38 | 显示全部楼层
鸿哥,内部的EEPROM没有被擦出掉
乐于分享,勇于质疑!
 楼主| 发表于 2015-2-4 12:58:07 | 显示全部楼层
黑夜之狼 发表于 2015-2-4 12:56
鸿哥,内部的EEPROM没有被擦出掉

我用的是PIC18F4520,它内部的EEPROM数据会因为我重新烧录程序而一起被擦除掉的。
乐于分享,勇于质疑!
发表于 2015-2-4 15:20:59 | 显示全部楼层
刚做了实验,问题已经解决。首先第一点,EEPROM是不会擦除的,另外,像鸿哥所说的,下载程序的时候是会把flash擦除掉,再写进去,但是,某些单片机,比如我今天用到的,可以选择扇区擦除的,也就是说,假如上次我选择了扇区10作为数据存储,写进去了,然后下次编译前,把写数据的代码注释掉,下载的时候不选择把扇区10擦除就没事了,可以正常读取数据,保证不丢失
乐于分享,勇于质疑!
 楼主| 发表于 2015-2-4 15:49:15 | 显示全部楼层
黑夜之狼 发表于 2015-2-4 15:20
刚做了实验,问题已经解决。首先第一点,EEPROM是不会擦除的,另外,像鸿哥所说的,下载程序的时候是会把fl ...

“下载的时候不选择把扇区10擦除就没事了”你的意思是,你的单片机在烧录时,可以在烧录软件选择相应的选项然后再烧录?烧录软件会给你相应的选项选择?
乐于分享,勇于质疑!
发表于 2015-2-5 10:00:32 | 显示全部楼层
jianhong_wu 发表于 2015-2-4 15:49
“下载的时候不选择把扇区10擦除就没事了”你的意思是,你的单片机在烧录时,可以在烧录软件选择相应的选 ...

就是这样,看下图在keil环境下,当然,这个是针对中颖的片子而安装的插件,选择“settings”,点击进去
以前调试的时候,我会选择右上角的“所有程序存储器”,我看了手册很多遍,针对我要实现的功能的资料确实没有找到,无奈之下只好自己想办法,在下载的时候发现了“扇区”
如果说下载是会擦除掉数据的话,我要是选择之前存放数据的扇区不被擦除就行了
QQ截图20150205095110.png
QQ截图20150205095328.png
QQ截图20150205095151.png
乐于分享,勇于质疑!
 楼主| 发表于 2015-2-5 11:23:51 | 显示全部楼层
黑夜之狼 发表于 2015-2-5 10:00
就是这样,看下图在keil环境下,当然,这个是针对中颖的片子而安装的插件,选择“settings”,点击进去
...

明白了。
乐于分享,勇于质疑!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|独闷闷网 ( 粤ICP备12007667号-2 )

GMT+8, 2024-12-12 08:11 , Processed in 0.232711 second(s), 20 queries .

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