背景:
最近在做一个 stm32 的项目, 其中用到 RTC 的实时时钟功能. 时钟源采用外部 32.768K 晶振, 时钟预分频设置为 32767, 目的是为了产生 1 秒的中断, 然后在中断处理函数中更新实时年月日时分秒.
解决方案:
但是由于缺乏经验, RTC 中断处理函数中并没有使用 RTC_ClearITPendingBit(RTC_IT_SEC) 将中断标志位清除, 导致程序在 NVIC_Init() 之后一直跳转到中断函数中, 无法执行接下来的代码.
结论:
通过手动清除秒中断标志位之后, 问题迎刃而解. 说明 STM32 的 RTC 中断标志位无法自动清除, 必须要手动清除, 否则会出现上述情况.
来源: https://www.cnblogs.com/wzzgeorge/p/11564347.html