STM32F103 HAL库学习 之 RTC实时时钟和中断

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函数,并在其中编写你的中断处理逻辑

  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
STM32F103是STMicroelectronics推出的一款ARM Cortex-M3内核的微控制器,具有丰富的外设和强大的性能。RTC(Real-Time Clock)是STM32F103系列微控制器的一个重要的功能模块,可以用于实现实时时钟和闹钟功能。HAL库是STMicroelectronics提供的一套用于STM32系列微控制器的开发库,可以简化程序的编写过程。 在使用STM32F103RTC闹钟功能时,我们可以通过HAL库提供的相关函数进行配置和操作。首先,我们需要初始化RTC模块,并设置时钟源以及预分频系数。然后,我们可以设置闹钟时间,并使能闹钟中断,通过中断回调函数来执行相应的操作。在闹钟触发时,RTC模块会产生中断,并执行我们事先定义好的中断回调函数。我们可以在中断回调函数中进行一系列的操作,比如触发其他外设、显示相关信息等。 需要注意的是,在使用RTC闹钟功能时,我们需要先通过外部电池或超级电容器来保持RTC的时间计数器。否则,每次重新上电或复位都会导致时间计数器重置。我们可以使用RTC备份域来保存一些关键的信息,以防断电时数据的丢失。 总之,STM32F103RTC闹钟功能可以通过HAL库简单易用地实现。我们只需要按照相应的步骤进行配置和操作,即可实现一套完整的RTC闹钟功能。这种功能在一些需要时间相关操作的应用中非常实用,比如时钟、日历、定时任务等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值