rtc 是可以单独供电的,通常设计rtc是带有一个纽扣电池用来给rtc供电。本次是调试rtc 的备份寄存器和备份sram,这两个都是可以在rtc不断电情况下一直保存数据。
步骤
*** Main and Backup Regulators configuration ***
================================================
[..]
(+) The backup domain includes 4 Kbytes of backup SRAM accessible only from
the CPU, and address in 32-bit, 16-bit or 8-bit mode. Its content is
retained even in Standby or VBAT mode when the low power backup regulator
is enabled. It can be considered as an internal EEPROM when VBAT is
always present. You can use the HAL_PWREx_EnableBkUpReg() function to
enable the low power backup regulator.
(+) When the backup domain is supplied by VDD (analog switch connected to VDD)
the backup SRAM is powered from VDD which replaces the VBAT power supply to
save battery life.
(+) The backup SRAM is not mass erased by a tamper event. It is read
protected to prevent confidential data, such as cryptographic private
key, from being accessed. The backup SRAM can be erased only through
the Flash interface when a protection level change from level 1 to
level 0 is requested.
[email protected] Refer to the description of Read protection (RDP) in the Flash
programming manual.
Refer to the product datasheets for more details.
翻译
主稳压器和备用稳压器配置 =======================================
[…](+)备份域包括只能从CPU访问的4 KB备份SRAM,其地址为32位,16位或8位模式。启用低功耗备用稳压器后,即使在待机或VBAT模式下,其内容也会保留。当始终存在VBAT时,可以将其视为内部EEPROM。您可以使用HAL_PWREx_EnableBkUpReg()函数来启用低功耗备用稳压器。
(+)当备份域由VDD提供(模拟开关连接到VDD)时,备份SRAM由VDD供电,该VDD替代了VBAT电源以节省电池寿命。
(+)篡改事件不会大量擦除备用SRAM。对其进行了读取保护,以防止访问机密数据(例如加密私钥)。当保护级别从1级更改为0级时,只能通过Flash接口擦除备份SRAM。
[email protected]请参阅Flash编程手册中的读保护(RDP)说明。有关更多详细信息,请参考产品数据表。
__HAL_RCC_PWR_CLK_ENABLE();/* 电源管理时钟使能 */
HAL_PWR_EnableBkUpAccess();/* 使能允许访问备份域(备份寄存器和备份SRAM)*/
HAL_PWREx_EnableBkUpReg();/* 使能备份寄存器 这里最新版是这个函数*/
__HAL_RCC_BKP_CLK_ENABLE();/* 使能备份域时钟 ,虽然有保留在h文件中,但是没具体实现,不用这个*/
备份寄存器一般都数量比较少,只能存一点点东西。
数量需要查阅手册或者直接从生成的代码中找到数量,比如,本次生成的代码在函数中说明的0-19个寄存器,数据可以看见从下面实现是uint32_t大小的数据
/**
* @brief Writes a data in a specified RTC Backup data register.
* @param hrtc pointer to a RTC_HandleTypeDef structure that contains
* the configuration information for RTC.
* @param BackupRegister RTC Backup data Register number.
* This parameter can be: RTC_BKP_DRx where x can be from 0 to 19 to
* specify the register.
* @param Data Data to be written in the specified RTC Backup data register.
* @retval None
*/
void HAL_RTCEx_BKUPWrite(RTC_HandleTypeDef *hrtc, uint32_t BackupRegister, uint32_t Data)
{
uint32_t tmp = 0U;
/* Check the parameters */
assert_param(IS_RTC_BKP(BackupRegister));
tmp = (uint32_t) & (hrtc->Instance->BKP0R);
tmp += (BackupRegister * 4U);
/* Write the specified register */
*(__IO uint32_t *)tmp = (uint32_t)Data;
}
只需要在使能之后写入 再读取。
上面提到了是4KB,这里查阅手册确实是4KB
这里直接使用就可以
uint32_t addr = 0x40024000;
*(__IO uint32_t *)addr = 0x01;//写入
uint32_t data = *(__IO uint32_t *)addr;//读取
当保护级别从1级更改为0级时,只能通过Flash接口擦除备份SRAM。
HAL_FLASH_Unlock();
HAL_StatusTypeDef HAL_FLASHEx_Erase(FLASH_EraseInitTypeDef *pEraseInit, uint32_t *SectorError)
就需要使用flash接口擦除了(未验证)
笔记本装了ubuntu16.04和window10,win10更新后,发现开机引导不对,需要手动修复一下。 1、输入set看下现在grub引导指向哪个盘 引导指向hd0,msdos3分区在用ls命令查看 磁盘的分区情况其中hd0 代表第一块硬盘 hd1代表第二块一个一个查,直到找到grub所在分区,我电脑显示是Filesystem is ext2。 ...
Android Gesture 手势识别使用实例 - Android - mobile - ITeye论坛 Android Gesture 手势识别使用实例 - Android - mobile - ITeye论坛主题:Android Gesture 手势识别使用实...
1、基本语法这包括static、final、transient等关键字的作用,foreach循环的原理等等。今天面试我问你static关键字有哪些作用,如果你答出static修饰变量、修饰方法我会认为你合格,答出静态块,我会认为你不错,答出静态内部类我会认为你很好,答出静态导包我会对你很满意,因为能看出你非常热衷研究技术。让我印象深刻的一次面试经历,面试官直接问到了我volatile关键字的底...
不容易系列之(3)—— LELE的RPG难题Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 51084 Accepted Submission(s): 20503Problem Description人称“
题意:给定数列A,问有多少个数列B满足一下条件 1.1 2.对于任意 1=2 全是就是gcd(B)>=2思路:实在太弱了,多校中写不出来,就想着找最小的Ai,然后遍历每个gcd遍历一遍数组A, 1E10的复杂度 会爆看了大佬们的博客,有些还用了莫比乌斯反演有些没用直接求,再容斥原理去重#incl
=====================================================github:https://github.com/MichaelBeechanCSDN:https://blog.csdn.net/u011344545=====================================================目标如何训练一个Faster R-CNN目标检测器(卷积神经网络)深度学习是一种强大的机器学习技术,可用于训练鲁棒的目标检测器存在
适配器:何为适配器?搜狗百科:适配器是一个接口转换器,它可以是一个独立的硬件接口设备,允许硬件或电子接口与其它硬件或电子接口相连,也可以是信息接口。比如:电源适配器、三角架基座转接部件、USB与串口的转接设备等。那么在Java中适配器是啥呢?在阎宏博士的《JAVA与模式》一书中开头是这样描述适配器(Adapter)模式的:适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因...
题目链接思路一:动态规划(三维数组)分析:对于每个符合题目条件的回文串,一定是a、b、c、d中的某个字符开头和结尾的。那么可以将这四个字符开头当作一个状态。定义dp: dp[x][i][j]表示 以x开头和结尾 的并且字符串范围在s[i:j]中的回文子序列的个数。其中x表示abcd中的某个字符。首先初始化。对于长度为1的字符串肯定是回文。所以dp[x][i][i]=1,此时的x应该为s.charAt(i)。状态转移方程:最后的答案应该为以a、b、c、d四个字符结尾的范围是[0][len-1]的dp
为什么80%的码农都做不了架构师?>>> ...
Power Query行中IF 函数判定以及Count统计
一、线性链表的元素删除参考书:《数据结构(C语言)》–严蔚敏等编著,清华大学出版社。1、删除思想如图:若线性链表初始化为:1,2,3,4,5删除第3个位置的元素步骤:(1)查找到第i的位置的前驱,使用p指向i-1处;(2)建立q节点,使其在p的next,将q的next 给 p的next,使2的位置与4的位置相连(3)这时将q的位置的值赋给e返回,然后free(q)或delete q;这个节点,完成删除相关代码:#include "stdio.h"#include "stdlib.h