赞
踩
BKP功能介绍:备用电源不断电,主电源断电,BKP数据不丢失
单片机:STM32F103C8T6
实现功能:写入数据给BKP外设,读取BKP外设的数据
实现步骤:
1.使能PWR的时钟 "RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR,ENABLE);"
2.使能BKP的时钟 "RCC_APB1PeriphClockCmd(RCC_APB1Periph_BKP,ENABLE);"
3.//启动对备份寄存器和RTC的访问 "PWR_BackupAccessCmd(ENABLE);"
4.写备份寄存器 “BKP_WriteBackupRegister(BKP_DR1,0x0000);”
5.读备份寄存器 “BKP_ReadBackupRegister(BKP_DR1);”
实现代码:
- #include "stm32f10x.h" // Device header
- #include "Delay.h"
- #include "OLED.h"
- uint16_t Write,Read;
-
- int main(void)
- {
- OLED_Init();
- OLED_ShowChar(1,1,'W');
- OLED_ShowChar(2,1,'R');
- Write=0x0000;
- RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR,ENABLE);//使能PWR的时钟
- RCC_APB1PeriphClockCmd(RCC_APB1Periph_BKP,ENABLE);//使能BKP的时钟
- PWR_BackupAccessCmd(ENABLE);//启动对备份寄存器和RTC的访问
- while (1)
- {
-
- // BKP_WriteBackupRegister(BKP_DR1,Write);//写备份寄存器
- Read = BKP_ReadBackupRegister(BKP_DR1);//读备份寄存器
- OLED_ShowHexNum(1,3,Write,4);
- OLED_ShowHexNum(2,3,Read,4);
-
- }
- }
功能验证:注释写备份寄存器的代码,修改Write的数据,断主电源,保留备份电源,可以看到数据不丢失
BKP.h文件代码
BKP_WriteBackupRegister(uint16_t BKP_DR, uint16_t Data);
BKP_ReadBackupRegister(uint16_t BKP_DR);(有返回值)
PWR.h文件代码
PWR_BackupAccessCmd(FunctionalState NewState);
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。