diff --git a/embassy-stm32/src/time_driver.rs b/embassy-stm32/src/time_driver.rs index 88b6c48bb..8cf74ef6c 100644 --- a/embassy-stm32/src/time_driver.rs +++ b/embassy-stm32/src/time_driver.rs @@ -414,7 +414,10 @@ impl RtcDriver { let alarm_handle = unsafe { AlarmHandle::new(i as u8) }; let alarm = self.get_alarm(cs, alarm_handle); - self.set_alarm(alarm_handle, alarm.timestamp.get()); + if !self.set_alarm(alarm_handle, alarm.timestamp.get()) { + // If the alarm timestamp has passed, we need to trigger it + self.trigger_alarm(i, cs); + } } }