背景:
最近在做一個stm32的項目,其中用到RTC的實時時鍾功能。時鍾源采用外部32.768K晶振,時鍾預分頻設置為32767,目的是為了產生1秒的中斷,然后在中斷處理函數中更新實時年月日時分秒。
解決方案:
但是由於缺乏經驗,RTC中斷處理函數中並沒有使用RTC_ClearITPendingBit(RTC_IT_SEC)將中斷標志位清除,導致程序在NVIC_Init()之后一直跳轉到中斷函數中,無法執行接下來的代碼。
結論:
通過手動清除秒中斷標志位之后,問題迎刃而解。說明STM32的RTC中斷標志位無法自動清除,必須要手動清除,否則會出現上述情況。