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文章
7646浏览量
151938 -
寄存器
+关注
关注
31文章
5363浏览量
121000 -
读写操作
+关注
关注
0文章
5浏览量
7134 -
VDD
+关注
关注
1文章
312浏览量
33448 -
ch32v307
+关注
关注
0文章
14浏览量
1875
发布评论请先 登录
相关推荐
在PORT寄存器和GPIO引脚的LAT寄存器上进行读写操作的利弊?
大家好,谁能建议一下在PORT寄存器和GPIO引脚的LAT寄存器上进行读写操作的利弊?非常感谢你的帮助。
发表于 03-11 10:43
寄存器和cache的区别介绍
本文开始阐述了CACHE的概念、CACHE替换机构与读写操作,其次介绍了寄存器的原理以及它的主要技术,最后阐述了寄存器和cache两者之间的区别。
发表于 04-11 14:10
•1.3w次阅读
芯片与寄存器
芯片与寄存器作为一个嵌入式开发人员,从接触第一块单片机的时候,就一定会听到一个此,叫做寄存器。单片机的很多功能都是通过配置修改寄存器来实现的。我们了解寄存器,也
发表于 11-23 16:21
•50次下载
C语言位操作在(单片机)寄存器中的应用
其他位寄存器的特点是按位进行规划和使用。但是寄存器的读写却是整体32位一起进行的(比如说一个32位的寄存器,你只想修改bit5~bit7是不行的,必须整体32bit全部写入)
发表于 11-29 10:06
•8次下载
STM32的寄存器操作
STM32的寄存器操作在使用STM32单片机编程时一般都用ST给的库函数编程,库函数编程的底层就是对单片机寄存器的操作,库函数就是一系列寄存器
发表于 01-13 15:43
•19次下载
SpinalHDL中如何优雅地实现寄存器总线读写
通过bus slave factory,我们可以方便地实现寄存器读写,其提供了一系列寄存器读写方法。这里列举几个常用的方法(完整的方法列表可参照SpinalHDL-Doc):
发表于 08-05 09:57
•1029次阅读
评论