首先要確保有外部電源給VBAT供電
生成后應該會有這兩個文件(不知道為什么生成了好幾次都沒有,復制工程在試一次就有了)
可以看到stm32f407有20個備份寄存器
讀寫函數
void HAL_RTCEx_BKUPWrite(RTC_HandleTypeDef *hrtc, uint32_t BackupRegister, uint32_t Data)
uint32_t HAL_RTCEx_BKUPRead(RTC_HandleTypeDef *hrtc, uint32_t BackupRegister)
如果要讀寫BKP寄存器的數據,首先要先解除BKP寄存器的寫保護,代碼如下
__HAL_RCC_PWR_CLK_ENABLE();//使能電源時鐘 PWR
HAL_PWR_EnableBkUpAccess();//取消備份區域寫保護
__HAL_RCC_RTC_ENABLE();//RTC 時鐘使能
if(HAL_RTCEx_BKUPRead(&hrtc,RTC_BKP_DR1)!=0x9193)
{
HAL_RTCEx_BKUPWrite(&hrtc,RTC_BKP_DR1,0x9193);
}