STM32的RTC中断标志只能手动清除

背景:

  最近在做一个stm32的项目,其中用到RTC的实时时钟功能。时钟源采用外部32.768K晶振,时钟预分频设置为32767,目的是为了产生1秒的中断,然后在中断处理函数中更新实时年月日时分秒。

解决方案:

  但是由于缺乏经验,RTC中断处理函数中并没有使用RTC_ClearITPendingBit(RTC_IT_SEC)将中断标志位清除,导致程序在NVIC_Init()之后一直跳转到中断函数中,无法执行接下来的代码。

结论:

  通过手动清除秒中断标志位之后,问题迎刃而解。说明STM32的RTC中断标志位无法自动清除,必须要手动清除,否则会出现上述情况。

原文地址:https://www.cnblogs.com/wzzgeorge/p/11564347.html