OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 9472|回复: 4

如何对一个变量进行断电保护?

[复制链接]

2

主题

16

帖子

0

精华

新手上路

积分
44
金钱
44
注册时间
2012-3-19
在线时间
0 小时
发表于 2012-5-10 21:57:57 | 显示全部楼层 |阅读模式
答案可以是写入FLASH保存起来?
例:对全局变量a进行断电保护
//第一次开机的初始化:
init1()
{a=0; a写入FLASH某固定地址; }
且每次改变a后更新到该FLASH固定地址处

//非第一次开机的初始化
inti2()
{FLASH该固定地址数据读给a;}

但是!!!如何判断是第几次开机?中间是否有断电?还是我的思想或者编程思路有误?
求解原子哥和各路大侠。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2012-5-11 00:04:55 | 显示全部楼层
回复【楼主位】虛構:
---------------------------------
可以用2个变量.
a,用来标识是否第一次开机.
b,用来记录开机次数.

第一次开机,a的值一般为0XFF,那么我规定a=0X55即为第一次开机过了.同时设置b=1.
第二次开机的时候,a已经为0X55了,只需要简单的对b增1即可.
第三次,继续b++;
....

第N次开机,b的值就是N.(当然b最好设置为u16或者u32类型的,u8的只能记录255次...)
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

2

主题

16

帖子

0

精华

新手上路

积分
44
金钱
44
注册时间
2012-3-19
在线时间
0 小时
 楼主| 发表于 2012-5-14 21:17:26 | 显示全部楼层
都设置成上下拉输入模式,万用表测得PA和PC IO口的电压不一样?何解?IO口PA\PB\PC\PD各有什么不同?
回复 支持 反对

使用道具 举报

2

主题

1436

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2209
金钱
2209
注册时间
2010-12-16
在线时间
190 小时
发表于 2012-5-15 06:05:58 | 显示全部楼层
PC13...15有区别,其他相同.具体看DS.
技术讨论请发帖 , 需要我回复请点左下的 < 回复 > 让系统通知我 . 本人不通过其他方式返回任何参数.
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2012-5-15 09:02:44 | 显示全部楼层
回复【3楼】虛構:
---------------------------------
结合原理图看。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-25 23:42

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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