STM32
直播中

李平

7年用户 1208经验值
私信 关注
[问答]

STM32G030在上电第一次调用LL_RTC_DeInit(RTC) 会在LL_RTC_EnterInitMode()里进入超时等待,为什么?

1, 在上电第一次调用 LL_RTC_DeInit(RTC) 会在 LL_RTC_EnterInitMode()里进入超时等待
2, 但是增加LL_RCC_EnableRTC();在调用LL_RTC_DeInit(RTC)之前,就没有这个问题。
问题是
3,其他的项目用的同一个平台,有些有上述的问题。但是有些不会。

回帖(1)

刘杰

2024-5-31 17:34:22
STM32G030是一款基于ARM Cortex-M0+内核的微控制器,它具有实时时钟(RTC)功能。在某些情况下,调用LL_RTC_DeInit(RTC)函数可能会导致LL_RTC_EnterInitMode()函数进入超时等待。以下是可能的原因和解决方案:

1. 在上电第一次调用LL_RTC_DeInit(RTC)时,RTC可能尚未初始化或配置。这可能导致LL_RTC_EnterInitMode()函数在尝试进入初始化模式时超时。这是因为RTC需要一定的时间来完成初始化过程。

2. 在调用LL_RTC_DeInit(RTC)之前增加LL_RCC_EnableRTC()函数可以解决这个问题。这是因为LL_RCC_EnableRTC()函数会启用RTC时钟,确保RTC在调用LL_RTC_DeInit(RTC)之前已经初始化并准备好进行操作。

3. 对于其他项目使用相同平台的情况,有些项目可能存在上述问题,而有些项目则没有。这可能是由于不同项目之间的配置差异导致的。例如,有些项目可能在初始化过程中已经正确地启用了RTC时钟,而其他项目则没有。为了解决这个问题,建议检查项目的初始化代码,确保在调用LL_RTC_DeInit(RTC)之前正确地启用了RTC时钟。

总之,为了避免LL_RTC_EnterInitMode()函数进入超时等待,建议在调用LL_RTC_DeInit(RTC)之前先调用LL_RCC_EnableRTC()函数,以确保RTC时钟已经启用并准备好进行操作。同时,检查项目的初始化代码,确保在不同项目之间保持一致的配置。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分