YangZhongQing
1c2d05d545
RTC STM32F1 Enable PWR and BKP clocks in the same time
bsp\stm32\libraries\HAL_Drivers\drv_rtc.c在STM32F10x上有一个“RTC首次上电时BKP时钟没使能”的问题。
STM32F10x要求:
写RTC Domain and RTC registers之前需要__HAL_RCC_BKP_CLK_ENABLE(详见:stm32f1xx_hal_rtc.c里面的##### Backup Domain Access #####)
问题分析:
1、RTC首次上电时:由于HAL_RTC_Init初始化之前没有使能BKP时钟,所以对RTC registers的初始化无效。
2、然后用date命令设置时间,调用到set_rtc_time_stamp也没有__HAL_RCC_BKP_CLK_ENABLE,所以HAL_RTCEx_BKUPWrite写的值无法真正永存于BKP,重启后就丢失。
最终导致:对于RTC首次上电的情况,每次重启后RTC_BKP_DR1里的值都不是BKUP_REG_DATA,导致永远无法调用到rt_rtc_f1_bkp_update()去使能BKP时钟。
解决办法:
参考STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Examples\RTC\Calendar\main.c里面的RTC_Configuration()同时打开RCC_APB1Periph_PWR和RCC_APB1Periph_BKP
2022-09-23 21:04:35 -04:00
..
2022-06-04 17:05:37 +08:00
2022-08-01 00:21:41 -04:00
2022-08-02 12:09:49 -04:00
2022-06-14 14:17:22 +08:00
2022-09-16 08:36:48 -04:00
2021-03-08 22:40:39 +08:00
2022-08-14 21:49:43 -04:00
2021-04-08 21:19:30 +08:00
2021-11-15 11:23:12 +08:00
2022-05-09 11:13:01 +08:00
2022-05-25 10:04:33 +08:00
2021-11-15 15:31:51 +08:00
2022-08-03 22:45:27 -04:00
2021-08-17 12:54:03 +08:00
2022-08-02 12:09:49 -04:00
2021-03-08 22:40:39 +08:00
2022-06-14 16:11:05 +08:00
2022-01-13 10:18:33 +08:00
2022-01-16 18:54:24 +08:00
2021-03-08 22:40:39 +08:00
2021-03-08 22:40:39 +08:00
2021-03-08 22:40:39 +08:00
2021-03-08 22:40:39 +08:00
2022-03-24 08:30:41 +08:00
2022-09-01 00:59:44 -04:00
2021-03-08 22:40:39 +08:00
2021-03-08 22:40:39 +08:00
2022-09-23 21:04:35 -04:00
2021-11-17 15:57:15 -05:00
2021-03-08 22:40:39 +08:00
2021-09-27 17:42:30 +08:00
2022-08-02 12:09:49 -04:00
2021-03-08 22:40:39 +08:00
2022-06-16 10:54:30 +08:00
2022-06-16 10:54:30 +08:00
2022-08-02 12:09:49 -04:00
2021-04-23 09:55:31 +08:00
2022-04-04 17:25:04 +08:00
2021-10-14 10:15:55 +08:00
2022-09-22 14:13:57 +08:00
2022-09-22 14:13:57 +08:00
2021-10-19 11:03:18 +08:00
2022-01-26 10:46:57 +08:00
2021-03-08 22:40:39 +08:00
2021-11-02 14:37:42 +08:00
2020-11-26 14:31:08 +08:00
2022-06-16 10:54:30 +08:00