STM32的备份寄存器测试
生活随笔
收集整理的這篇文章主要介紹了
STM32的备份寄存器测试
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. 研究STM3的備份寄存器,注意,如果要測試這個例程的話,VBAT不能和VDD接一起,必須分開。
2. 理解,備份寄存器可以有VBAT獨立供電,也就是外接電池,備份寄存器在VBAT供電情況下,如果發生系統復位(按鍵復位)和上電復位,備份寄存器的值可以保持。
3. 代碼如下:
1 int main(void) 2 { 3 #ifdef DEBUG 4 debug(); 5 #endif 6 7 /* System Clocks Configuration */ 8 RCC_Configuration(); 9 10 /* NVIC configuration */ 11 NVIC_Configuration(); 12 13 /* GPIO configuration */ 14 GPIO_Configuration(); 15 16 /* Enable PWR and BKP clock */ 17 RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE); 18 19 /* Enable write access to Backup domain */ 20 PWR_BackupAccessCmd(ENABLE); 21 22 /* Clear Tamper pin Event(TE) pending flag */ 23 BKP_ClearFlag(); 24 25 //首先判斷是不是上電復位的 26 if(RCC_GetFlagStatus(RCC_FLAG_PORRST) != RESET) 27 { 28 /* Clear reset flags */ 29 RCC_ClearFlag(); 30 31 /* Turn on led connected to GPIO_LED Pin8 */ 32 GPIO_SetBits(GPIO_LED, GPIO_Pin_8); 33 34 /* Check if Backup data registers are programmed */ 35 if(CheckBackupReg(0x3211) == 0x00) 36 { /* Backup data registers values are correct */ 37 38 /* Turn on led connected to GPIO_LED Pin6 */ 39 GPIO_SetBits(GPIO_LED, GPIO_Pin_6); 40 } 41 else 42 { /* Backup data registers values are not correct or they are not yet 43 programmed (when the first time the program is executed) */ 44 45 /* Write data to Backup data registers */ 46 WriteToBackupReg(0x3211); 47 48 /* Turn on led connected to GPIO_LED Pin7 */ 49 GPIO_SetBits(GPIO_LED, GPIO_Pin_7); 50 } 51 } 52 53 /* Turn on led connected to GPIO_LED Pin9 */ 54 GPIO_SetBits(GPIO_LED, GPIO_Pin_9); 55 56 while (1) 57 { 58 } 59 }4. 測試,第一次上電,亮燈LED7,LED8,LED9,然后VDD斷電重新上電,亮燈LED6,LED8,LED9,然后按復位按鍵,亮燈LED9(代碼只檢查是不是上電復位)
5. 程序比較簡單,主要是備份寄存器的作用。
轉載于:https://www.cnblogs.com/429512065qhq/p/8082717.html
總結
以上是生活随笔為你收集整理的STM32的备份寄存器测试的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: BZOJ2038: [2009国家集训队
- 下一篇: 无限遍历,Python实现在多维嵌套字典