您的位置 首页 软件

STM32体系中怎么数据掉电维护

STM32系统中如何数据掉电保护-在嵌入式设备开发中,往往需要保存一些掉电不易失性的数据,如果系统配置、用户定制信息等等,如果增加额外的ROM IC,比如(基于I2C的24C02等等)往往会造成额外的PCB空间增大,硬件成本增加,降低产品的性价比。

在嵌入式设备开发中,往往需求保存一些掉电不易失性的数据,假如体系装备、用户定制信息等等,假如添加额定的ROM IC,比方(根据I2C的24C02等等)往往会形成额定的PCB空间增大,硬件本钱添加,下降产品的性价比。假如单从实用性来讲,在stm32的体系中,诸如此类的运用,笔者引荐如下2个办法能够去测验和学习。

根据备份寄存器

原理:关于大容量的MCU系列来说,它有着42个16bit的备份寄存器,而中小容量的微处理器却只有10个16bit的备份寄存器。以STM32F103C8T6为例,42个备份寄存器的地址偏移为:0x04~0x28,0x40~0xBC,共能够存储84个byte数据。备份寄存器是依靠者备份电源的,当外界的VDD掉电,只需体系的VBAT能正常存在,那么Bakeup Domaain Registers的内容能够被正常保存起来。

软件编程关键,以一个项目中常用的case为例:

功用初始化:

备份寄存器读出:void BKP_WriteBackupRegister(uint16_t BKP_DR, uint16_t Data)

备份寄存器读出:uint16_t BKP_ReadBackupRegister(uint16_t BKP_DR)

该办法运用简略,明晰,可是因为一共的能够运用的空间少,故该办法仅仅适合于保存小批量的数据,如穿戴设备中用户的常用装备数据。

根据内部闪存

原理:FLASH 存储器又称为闪存,它也是可重复擦写的储器。它分为 NOR FLASH 和 NAND FLASH,NOR FLASH一般运用在代码存储的场合,如嵌入式控制器内部的程序存储空间;而 NAND FLASH 一般运用在大数据量存储的场合,如U 盘以及固态硬盘等,一般都是 NAND FLASH 类型的。

在stm32芯片中,Flash的读写单位都是以“页”为单位的,以STM32F103C8T6为例,它的每页巨细为2K bytes;

STM32体系中怎么数据掉电维护

软件编程关键

读写维护免除:运用这种办法条件是,当时读和写Flash的答应的,假定当时flash已经是答应写的。所以暂时一些关于OpTIonBytes的操作和Flash的读写维护操作等API暂时不做评论。

FlashWrite:单个uint32_t数据的写入简易流程如图:

FlashRead:关于单个int数据的读出,比较简略,经过下列句子完结:rdData= (*(__IOuint32_t *)dataAddr);

因为SW介入的API较多,并且有许多的额定的布景常识需求码农去了解,运用该办法,相对比较复杂。可是因为保存数据以页为单位,页的巨细能够多达2048bytes,所以该办法能够实用于保存掉电不易失的大数据。考虑到flash读写维护的逻辑机制,该办法最好在不考虑数据的安全性问题条件下,才运用这种办法。

关于诸如此类的掉电维护数据办法,这儿仅仅是抛砖引玉,欢迎我们多多提出更好的计划。

责任编辑:ct

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qianrushi/ruanjian/343103.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部