随笔 - 733  文章 - 2  评论 - 12  阅读 - 92万

断电数据保存问题

对于断电数据保存:

1 可以在每次操作时都将当前的状态保存到一个非易失地方,在上电后从改地址读出来初始化相关参数。优点:可靠但适合保存数量小的场合,缺点:效率不高。

2 也可以在掉电检测中断里面保存数据,上电时调出,但缺点是对突发断电可能没有足够的时间来存储。这适合有后备电源的场合。

STM32F407中PVD实现掉电检测

  • 使能PWR外设(加入 “stm32f4xx_pwr.h” 头文件,开启时钟,配置PVD电压级别)
  • 开启外中断(NVIC分组,配置外中断并使能),因为PVD连接到了外中断16上了。在中断沿设置时要注意:电压值高于设定值时为 0,低于设定值时为1
  • 外中断中进行数据保存。

 

 

关于存储介质:

对于存储少量参数:eerom比较合适,因为不用每次都整片搽除。但速度慢。

FLASH:上电时读到RAM,断电时写入FLASH(PVD检测,PVD中断中关闭外设后写数据,但需要后备电源).

也可以存在单片机的一些后备寄存器中。

关于FLASH搽除和写0XFF:

他们是有区别的,flash写(0/1)之前必须搽除。写0XFF在原来是1的情况下是没问题的,但之后写0就写不进去了。

posted on   杰瑞鼠  阅读(1106)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示