1.RTC 实时时钟
RTC(Real Time Clock)本质上是一个定时器,它拥有一个连续计数的计数器,提供时钟日历的功能,它的驱动时钟可以是外部晶体的32.768kHz的振荡器(提供LSE信号),内部低功耗RC振荡器(提供LSI信号),或者高速的经128分频的时钟(提供HSE信号)。
2.stm32cubemx设置
3.秒中断/闹钟中断
1.开启秒中断/闹钟中断
设置秒中断
HAL_RTCEx_SetSecond_IT(&hrtc);
设置闹钟中断
RTC_AlarmTypeDef alarmTime = {0};
alarmTime.AlarmTime.Hours = Xxx;
alarmTime.AlarmTime.Minutes = Xxx;
alarmTime.AlarmTime.Seconds = Xxx;
HAL_RTC_SetAlarm_IT(&hrtc, &alarmTime, RTC_FORMAT_BIN);
在RTC中断处理函数中修改需求使用的中断函数(在/Core/Src/stm32f1xx_it.c中修改)
void RTC_IRQHandler(void)
{
// RTC秒中断处理函数
HAL_RTCEx_RTCIRQHandler(&hrtc);
// RTC闹钟处理函数
// HAL_RTC_AlarmIRQHandler(&hrtc);
}
之后在其他地方重写HAL_RTCEx_RTCIRQHandler函数或者HAL_RTC_AlarmIRQHandle函数,并在其中编写你的中断处理逻辑