咚了个咚 发表于 2025-7-9 11:58

如何使用RTC获得12秒时间

用STM32L151RCT6 MCU在STM32Cube IDE中创建项目。我需要怎样设置才能实现12秒的RTC定时?我搜索了一些信息,了解到关于闹钟时间设置和闹钟中断的内容……如何实现12秒的RTC定时?

公羊子丹 发表于 2025-7-28 07:18

RTC闹钟一般支持秒、分、时为单位,12秒可以设置闹钟秒数为12,然后使能中断。

周半梅 发表于 2025-7-28 07:19

你可以用RTC Alarm A,设置Alarm秒寄存器为12,注意闹钟时间是基于当前秒的。

帛灿灿 发表于 2025-7-28 07:19

另一种方法是用RTC的定时器(Wakeup Timer),它支持设置周期时间,但最小单位是秒。

童雨竹 发表于 2025-7-28 07:20

STM32L1的RTC Wakeup Timer支持1Hz计数,可以设置12秒后触发中断。

万图 发表于 2025-7-28 07:21

你需要先使能LSE或LSI作为RTC时钟源,确保RTC能正常计时。

Wordsworth 发表于 2025-7-28 07:22

CubeMX里RTC配置中,选择Alarm或Wakeup Timer,然后设置对应时间周期。

Bblythe 发表于 2025-7-28 07:23

RTC的Alarm计数是循环的,超过59秒会自动回到0,12秒设置只触发一次。

Pulitzer 发表于 2025-7-28 07:23

你可以在闹钟中断回调里重新设置闹钟,实现周期12秒的定时功能。

Uriah 发表于 2025-7-28 07:24

Wakeup Timer中断相对灵活,可以直接设置12秒周期触发更方便。

Clyde011 发表于 2025-7-28 07:25

用HAL库时,调用 HAL_RTC_SetAlarm_IT() 或 HAL_RTCEx_SetWakeUpTimer_IT() 来启动12秒中断。
页: [1]
查看完整版本: 如何使用RTC获得12秒时间