STM32F103的備份寄存器BKP


STM32F103RBT6沒有eeprom想要存一些數據怎么辦?

1.可以加個外部EEPROM,

2.使用自帶的備份寄存器,需要VBAT一直供電,加個小紐扣電池不是啥大問題。

下面是代碼 

void Param_Read(void)
{
  uint16_t temp;
  
  RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE);//時鍾使能
  PWR_BackupAccessCmd(ENABLE);//允許操作備份寄存器
  temp = BKP_ReadBackupRegister(BKP_DR1);//讀第一個位置備份數據
  if (temp != 0x49E7)
  {
    Servo.Interval = 5;
    Motor.Gap = 1000;
    Param_Save();
    return;
  }
  Motor.Gap = BKP_ReadBackupRegister(BKP_DR2);
  Servo.Interval = BKP_ReadBackupRegister(BKP_DR3);
  BKP_ClearFlag();//清除復位標志,可自行補習這部分知識,此處不多敘述
  PWR_BackupAccessCmd(DISABLE);//操作完畢
}

  

使用並不麻煩

不同型號的備份容量也不一樣STM32F103RBT6為16bit能存20字節,

人話就是能存10個16bit數據;那么地址就是BKP_DR1到BKP_DR10;其它大容量的型號能存更多。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM