当前位置:   article > 正文

stm32学习笔记BKP外设_单片机bkp

单片机bkp

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);”

实现代码:

  1. #include "stm32f10x.h" // Device header
  2. #include "Delay.h"
  3. #include "OLED.h"
  4. uint16_t Write,Read;
  5. int main(void)
  6. {
  7. OLED_Init();
  8. OLED_ShowChar(1,1,'W');
  9. OLED_ShowChar(2,1,'R');
  10. Write=0x0000;
  11. RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR,ENABLE);//使能PWR的时钟
  12. RCC_APB1PeriphClockCmd(RCC_APB1Periph_BKP,ENABLE);//使能BKP的时钟
  13. PWR_BackupAccessCmd(ENABLE);//启动对备份寄存器和RTC的访问
  14. while (1)
  15. {
  16. // BKP_WriteBackupRegister(BKP_DR1,Write);//写备份寄存器
  17. Read = BKP_ReadBackupRegister(BKP_DR1);//读备份寄存器
  18. OLED_ShowHexNum(1,3,Write,4);
  19. OLED_ShowHexNum(2,3,Read,4);
  20. }
  21. }

功能验证:注释写备份寄存器的代码,修改Write的数据,断主电源,保留备份电源,可以看到数据不丢失

BKP.h文件代码

BKP_WriteBackupRegister(uint16_t BKP_DR, uint16_t Data);

BKP_ReadBackupRegister(uint16_t BKP_DR);(有返回值)

PWR.h文件代码

PWR_BackupAccessCmd(FunctionalState NewState);

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/Guff_9hys/article/detail/737324
推荐阅读
相关标签
  

闽ICP备14008679号