From f4323f2049328a6fdaa70a350f5a98e0b6cdb164 Mon Sep 17 00:00:00 2001 From: Zxy <78582677+ZosCat1@users.noreply.github.com> Date: Thu, 22 Dec 2022 09:33:54 +0800 Subject: [PATCH] =?UTF-8?q?[stm32f1]=20=E5=AF=B9=E4=BA=8ERTC-Alarm?= =?UTF-8?q?=E8=BF=9B=E8=A1=8C=E6=B7=BB=E5=8A=A0STM32F1=E5=AE=8F=E6=8E=A7?= =?UTF-8?q?=E5=88=B6=20(#6765)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 并确认并列出已经在什么情况或板卡上进行了测试。 And confirm in which case or board has been tested. --> STM32F103ZET6 为什么提交这份PR (why to submit this PR) 使用STM32F103ZET6的RTC的Alarm功能出现问题,按照原本的驱动代码编译会报错。 你的解决方案是什么 (what is your solution) 修改底层驱动drv_rtc.c文件,将报错的几个结构体给注释掉即可。 在什么测试环境下测试通过 (what is the test environment) rtstudio下对STM32F103ZET6进行测试并且成功运行Alarm功能 --- bsp/stm32/libraries/HAL_Drivers/drv_rtc.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/bsp/stm32/libraries/HAL_Drivers/drv_rtc.c b/bsp/stm32/libraries/HAL_Drivers/drv_rtc.c index 8f824637cb..748a27d405 100644 --- a/bsp/stm32/libraries/HAL_Drivers/drv_rtc.c +++ b/bsp/stm32/libraries/HAL_Drivers/drv_rtc.c @@ -368,14 +368,16 @@ static rt_err_t rtc_alarm_time_set(struct rtc_device_object* p_dev) if (p_dev->wkalarm.enable) { Alarm_InitStruct.Alarm = RTC_ALARM_A; + Alarm_InitStruct.AlarmTime.Hours = p_dev->wkalarm.tm_hour; + Alarm_InitStruct.AlarmTime.Minutes = p_dev->wkalarm.tm_min; + Alarm_InitStruct.AlarmTime.Seconds = p_dev->wkalarm.tm_sec; +#ifndef SOC_SERIES_STM32F1 Alarm_InitStruct.AlarmDateWeekDay = RTC_WEEKDAY_MONDAY; Alarm_InitStruct.AlarmDateWeekDaySel = RTC_ALARMDATEWEEKDAYSEL_WEEKDAY; Alarm_InitStruct.AlarmMask = RTC_ALARMMASK_DATEWEEKDAY; Alarm_InitStruct.AlarmSubSecondMask = RTC_ALARMSUBSECONDMASK_NONE; Alarm_InitStruct.AlarmTime.TimeFormat = RTC_HOURFORMAT12_AM; - Alarm_InitStruct.AlarmTime.Hours = p_dev->wkalarm.tm_hour; - Alarm_InitStruct.AlarmTime.Minutes = p_dev->wkalarm.tm_min; - Alarm_InitStruct.AlarmTime.Seconds = p_dev->wkalarm.tm_sec; +#endif /* SOC_SERIES_STM32F1 */ LOG_D("alarm set:%d:%d:%d", Alarm_InitStruct.AlarmTime.Hours, Alarm_InitStruct.AlarmTime.Minutes, Alarm_InitStruct.AlarmTime.Seconds); -- GitLab