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
+关注
关注
1文章
301浏览量
31917 -
ch32v307
+关注
关注
0文章
14浏览量
1664
发布评论请先 登录
相关推荐
请问ADE7913为什么可以读写配置寄存器而数据寄存器无法读取
,只能读出0.没有使用突发模式读。对CONFIG寄存器的读写都正常。读IWV也是先写地址,再读三个字节的长度。为什么可以读写配置寄存器,不能读数据
发表于 08-14 07:09
在PORT寄存器和GPIO引脚的LAT寄存器上进行读写操作的利弊?
大家好,谁能建议一下在PORT寄存器和GPIO引脚的LAT寄存器上进行读写操作的利弊?非常感谢你的帮助。
发表于 03-11 10:43
内存管理概述及原理
,等待外部输入。KEY0用于申请内存,每次申请2K字节内存。KEY1用于写数据到申请到的内存里面。KEY2用于释放内存。KEY_UP用于切换操作内存区(内部SRAM内存/外部SRAM内存)。DS0用于指示程序运行状态。1.内存管理概述及
发表于 02-23 06:15
C语言位操作在(单片机)寄存器中的应用
其他位寄存器的特点是按位进行规划和使用。但是寄存器的读写却是整体32位一起进行的(比如说一个32位的寄存器,你只想修改bit5~bit7是不行的,必须整体32bit全部写入)
发表于 11-29 10:06
•8次下载
STM32的寄存器操作
STM32的寄存器操作在使用STM32单片机编程时一般都用ST给的库函数编程,库函数编程的底层就是对单片机寄存器的操作,库函数就是一系列寄存器
发表于 01-13 15:43
•18次下载
个人对STM32 SysTick的总结(寄存器操作)
一、概述:SysTick是一个简单的递减24位计数器。如果你不需要再应用程序中嵌入操作系统,SysTick可以作为简单的延时和产生周期性的中断。状态控制寄存器的第0位可以使能计数器,当前值寄存
评论