打印
[STM32F1]

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

[复制链接]
1042|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复位则不初始化相关数据...

使用特权

评论回复
5
wyq165|  楼主 | 2015-2-11 08:33 | 只看该作者
airwill 发表于 2015-2-10 20:58
这个很难做到.
1. 找个特殊的按键, 里面包含常闭+常开触点, 当按键按下, 先脱开常闭触点, 连接的中断服务 ...

硬件已经定型了,bkp好像只有几十个字节。唉,难搞。

使用特权

评论回复
6
airwill| | 2015-2-11 08:53 | 只看该作者
嗯, 针对按键复位, 4楼的办法也是可行的.

使用特权

评论回复
7
wyq165|  楼主 | 2015-2-11 08:58 | 只看该作者
玄德 发表于 2015-2-10 23:05
硬件延时复位,是个办法;

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

隔时间的方式,也不可行。
flash的读写次数就是10万次/扇区。
隔一段时间写,跟我当时有改变就写,可能写的次数还多一些。

使用特权

评论回复
8
搞IT的| | 2015-2-16 22:04 | 只看该作者
楼上说的很对。

使用特权

评论回复
9
zchong| | 2015-2-18 17:20 | 只看该作者
延时复位吧

使用特权

评论回复
10
yubsh| | 2015-2-20 18:18 | 只看该作者
我也在做这方面的应用,我的想法有几种:一是增加掉电检测电路,大电容维持供电;二是用备份RAM,电池维持;三是写入铁电存储器,四是。。。。

使用特权

评论回复
11
zchong| | 2015-2-22 09:45 | 只看该作者
yubsh 发表于 2015-2-20 18:18
我也在做这方面的应用,我的想法有几种:一是增加掉电检测电路,大电容维持供电;二是用备份RAM,电池维持 ...

你这和楼主的要求不尽相同,而且思路有点乱。
你的思路应该是掉电保存:掉电保存一般是增加掉电检测电路,然后保存数据到xxx
楼主是复位,但不一定是掉电,情况更复杂一些,首先要分析复位信号来源,有可能是掉电了,有可能是手按的复位按钮,还有可能是外部看门狗,这些情况下你要写数据一般来说只能通过一个延时电路把复位接到cpu上,当信号拉低时,cpu先检测到,然后保存数据,延时过后真正复位了

使用特权

评论回复
12
搞IT的| | 2015-2-26 12:01 | 只看该作者
可以试试增加掉电检测电路看看。。。

使用特权

评论回复
13
zh113214| | 2015-2-28 20:48 | 只看该作者
时延复位吧,用软件写不知怎么做啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

40

主题

358

帖子

7

粉丝