[STM32F1] 求助外部复位,如何保存重要数据?

[复制链接]
1359|12
 楼主| wyq165 发表于 2015-2-10 19:22 | 显示全部楼层 |阅读模式
NRST引脚上接了个按钮,专门用于复位。
有些数据,需要在复位之前保存到flash。
但是按下按钮以后,STM32就复位了,怎样做才能使得,我在按下按钮的时候保存好数据再复位?
airwill 发表于 2015-2-10 20:58 | 显示全部楼层
这个很难做到.
1. 找个特殊的按键, 里面包含常闭+常开触点, 当按键按下, 先脱开常闭触点, 连接的中断服务马上保存数据, 当按键继续按下到常开触点闭合时,应该能完成 flash 保存.
2. 使用 bkp RAM. 所有的重要数据都放到这个地方, 那么复位按键就不会影响这里的数据, 于是保存 flash 就是, 你想啥时候保存就啥时候保存了
玄德 发表于 2015-2-10 23:05 | 显示全部楼层

硬件延时复位,是个办法;

另外,每隔一段时间,就把重要内容写到 flash,这通常也可以满足要求。——不至于恰好复位时的内容才重要吧?!

l4157 发表于 2015-2-11 08:16 | 显示全部楼层
检查复位源,如果是RST复位则不初始化相关数据...
 楼主| wyq165 发表于 2015-2-11 08:33 | 显示全部楼层
airwill 发表于 2015-2-10 20:58
这个很难做到.
1. 找个特殊的按键, 里面包含常闭+常开触点, 当按键按下, 先脱开常闭触点, 连接的中断服务 ...

硬件已经定型了,bkp好像只有几十个字节。唉,难搞。
airwill 发表于 2015-2-11 08:53 | 显示全部楼层
嗯, 针对按键复位, 4楼的办法也是可行的.
 楼主| wyq165 发表于 2015-2-11 08:58 | 显示全部楼层
玄德 发表于 2015-2-10 23:05
硬件延时复位,是个办法;

另外,每隔一段时间,就把重要内容写到 flash,这通常也可以满足要求。——不 ...

隔时间的方式,也不可行。
flash的读写次数就是10万次/扇区。
隔一段时间写,跟我当时有改变就写,可能写的次数还多一些。
搞IT的 发表于 2015-2-16 22:04 | 显示全部楼层
楼上说的很对。
zchong 发表于 2015-2-18 17:20 来自手机 | 显示全部楼层
延时复位吧
yubsh 发表于 2015-2-20 18:18 | 显示全部楼层
我也在做这方面的应用,我的想法有几种:一是增加掉电检测电路,大电容维持供电;二是用备份RAM,电池维持;三是写入铁电存储器,四是。。。。
zchong 发表于 2015-2-22 09:45 | 显示全部楼层
yubsh 发表于 2015-2-20 18:18
我也在做这方面的应用,我的想法有几种:一是增加掉电检测电路,大电容维持供电;二是用备份RAM,电池维持 ...

你这和楼主的要求不尽相同,而且思路有点乱。
你的思路应该是掉电保存:掉电保存一般是增加掉电检测电路,然后保存数据到xxx
楼主是复位,但不一定是掉电,情况更复杂一些,首先要分析复位信号来源,有可能是掉电了,有可能是手按的复位按钮,还有可能是外部看门狗,这些情况下你要写数据一般来说只能通过一个延时电路把复位接到cpu上,当信号拉低时,cpu先检测到,然后保存数据,延时过后真正复位了
搞IT的 发表于 2015-2-26 12:01 | 显示全部楼层
可以试试增加掉电检测电路看看。。。
zh113214 发表于 2015-2-28 20:48 | 显示全部楼层
时延复位吧,用软件写不知怎么做啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

40

主题

359

帖子

7

粉丝
快速回复 在线客服 返回列表 返回顶部