0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

后备数据寄存器概述及读写操作

CHANBAEK 来源:CSDN-借过风景 作者:CSDN-借过风景 2023-02-15 11:52 次阅读

1. 后备数据寄存器概述

CH32V307后备寄存器(BKP)提供了10个16位的通用数据寄存器(BKP_DATARx),可以用来存储20个字节的用户数据。

BKP_DATARx 后备数据寄存器在VDD掉电时,可依靠VBAT电源保持数据。

当系统在待机模式下被唤醒,或系统复位或电源复位时,这些数据也不会被复位。

BKP_DATARx 后备数据寄存器复位条件:

后备域复位(BDRST)
侵入引脚事件复位(需开启侵入检测功能,引脚为PC13)

2. 后备数据寄存器读写操作

微控制器复位后对后备寄存器和RTC 的访问被禁止,需通过以下操作开启对后备寄存器的访问:

置寄存器RCC_APB1PCENR 的PWREN 位和BKPEN 位来打开电源和后备接口的操作时钟

置电源控制寄存器PWR_CTLR 的DBP 位,使能对后备寄存器和RTC 寄存器的访问

参考代码:

int main (void)
{
    USART_Printf_Init(115200);
    printf("ch32V307 BKP test\\r\\n");
​
    //打开电源和后备接口时钟
    RCC_APB1PeriphClockCmd( RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE );
    //PWR_CTLR寄存器DBP位使能,后备区域写使能
    PWR_BackupAccessCmd( ENABLE ); //PWR->CTLR |= (1 << 8); 
    
    BKP_WriteBackupRegister( BKP_DR1, 0x1234 );
    BKP_WriteBackupRegister( BKP_DR2, 0x5678 );
​
    printf( "BKP_DR1:%08x\\r\\n", BKP->DATAR1 );
    printf( "BKP_DR2:%08x\\r\\n", BKP->DATAR2 );
    
    while (1);
}
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 微控制器
    +关注

    关注

    48

    文章

    6812

    浏览量

    147662
  • 寄存器
    +关注

    关注

    30

    文章

    5037

    浏览量

    117765
  • 读写操作
    +关注

    关注

    0

    文章

    5

    浏览量

    7091
  • VDD
    VDD
    +关注

    关注

    1

    文章

    301

    浏览量

    31917
  • ch32v307
    +关注

    关注

    0

    文章

    14

    浏览量

    1664
收藏 人收藏

    评论

    相关推荐

    寄存器是什么?怎么操作寄存器点亮LED灯?

    寄存器,是集成电路中非常重要的一种存储单元,通常由触发器组成。在集成电路设计中,寄存器可分为电路内部使用的寄存器和充当内外部接口的寄存器这两类。
    的头像 发表于 07-21 16:59 2982次阅读
    <b class='flag-5'>寄存器</b>是什么?怎么<b class='flag-5'>操作</b><b class='flag-5'>寄存器</b>点亮LED灯?

    指令系统的概述及符号约定,数据传送指令,SPCE061A指令系统

    ,包括立即数到寄存器寄存器寄存器寄存器到存储存储
    发表于 06-19 21:45

    请问ADE7913为什么可以读写配置寄存器数据寄存器无法读取

    ,只能读出0.没有使用突发模式读。对CONFIG寄存器读写都正常。读IWV也是先写地址,再读三个字节的长度。为什么可以读写配置寄存器,不能读数据
    发表于 08-14 07:09

    在PORT寄存器和GPIO引脚的LAT寄存器上进行读写操作的利弊?

    大家好,谁能建议一下在PORT寄存器和GPIO引脚的LAT寄存器上进行读写操作的利弊?非常感谢你的帮助。
    发表于 03-11 10:43

    stm32寄存器开发概述

    stm32寄存器开发基础寄存器开发概述[^1]寄存器:stm32时钟源:STM32F407引脚分组和寄存器点亮一盏灯的
    发表于 08-10 06:07

    内存管理概述及原理

    ,等待外部输入。KEY0用于申请内存,每次申请2K字节内存。KEY1用于写数据到申请到的内存里面。KEY2用于释放内存。KEY_UP用于切换操作内存区(内部SRAM内存/外部SRAM内存)。DS0用于指示程序运行状态。1.内存管理概述及
    发表于 02-23 06:15

    数据寄存器,数据寄存器是什么意思

    数据寄存器,数据寄存器是什么意思 数据寄存器数据
    发表于 03-08 14:38 1.2w次阅读

    寄存器的物理地址的概述

    寄存器的物理地址的概述
    发表于 01-04 11:32 0次下载

    C语言位操作在(单片机)寄存器中的应用

    其他位寄存器的特点是按位进行规划和使用。但是寄存器读写却是整体32位一起进行的(比如说一个32位的寄存器,你只想修改bit5~bit7是不行的,必须整体32bit全部写入)
    发表于 11-29 10:06 8次下载
    C语言位<b class='flag-5'>操作</b>在(单片机)<b class='flag-5'>寄存器</b>中的应用

    C语言:寄存器操作

    C语言:寄存器操作
    发表于 01-13 12:56 6次下载
    C语言:<b class='flag-5'>寄存器</b><b class='flag-5'>操作</b>

    STM32的寄存器操作

    STM32的寄存器操作在使用STM32单片机编程时一般都用ST给的库函数编程,库函数编程的底层就是对单片机寄存器操作,库函数就是一系列寄存器
    发表于 01-13 15:43 18次下载
    STM32的<b class='flag-5'>寄存器</b><b class='flag-5'>操作</b>

    简述RAL寄存器模型基础

    RAL(Register Abstract Layer,寄存器抽象层),通常也叫寄存器模型,顾名思义就是对寄存器这个部件的建模。本文要介绍的内容,包括对UVM寄存器模型的
    的头像 发表于 02-14 16:55 2353次阅读
    简述RAL<b class='flag-5'>寄存器</b>模型基础

    RAL寄存器模型操作图鉴

    寄存器模型操作,指的是通过寄存器模型对RTL中寄存器进行读写访问,或者同步寄存器模型与RTL中
    的头像 发表于 05-17 09:01 561次阅读
    RAL<b class='flag-5'>寄存器</b>模型<b class='flag-5'>操作</b>图鉴

    RAL寄存器模型操作指南

    寄存器模型操作,指的是通过寄存器模型对RTL中寄存器进行读写访问,或者同步寄存器模型与RTL中
    的头像 发表于 07-12 09:37 707次阅读
    RAL<b class='flag-5'>寄存器</b>模型<b class='flag-5'>操作</b>指南

    个人对STM32 SysTick的总结(寄存器操作)

    一、概述:SysTick是一个简单的递减24位计数器。如果你不需要再应用程序中嵌入操作系统,SysTick可以作为简单的延时和产生周期性的中断。状态控制寄存器的第0位可以使能计数器,当前值寄存
    的头像 发表于 01-06 08:00 438次阅读
    个人对STM32 SysTick的总结(<b class='flag-5'>寄存器</b><b class='flag-5'>操作</b>)