初级会员

- 积分
- 194
- 金钱
- 194
- 注册时间
- 2020-1-27
- 在线时间
- 19 小时
|
1金钱
STM32H7 做一个显示日历的程序,用官网的代码,设置为LSI时钟正常,但是关电后(有后备电池)时钟不走。改LSE后死机,相关代码如下:
@file RTC/RTC_TimeStamp/Inc/main.h
/* Defines related to Clock configuration */
/* Uncomment to enable the adaquate Clock Source */
//#define RTC_CLOCK_SOURCE_LSI
#define RTC_CLOCK_SOURCE_LSE
跟踪发现卡在这个地方:
/* Set the new LSE configuration -----------------------------------------*/
__HAL_RCC_LSE_CONFIG(RCC_OscInitStruct->LSEState);
/* Check the LSE State */
if((RCC_OscInitStruct->LSEState) != RCC_LSE_OFF)
{
/* Get Start Tick*/
tickstart = HAL_GetTick();
/* Wait till LSE is ready */
while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) == 0U)
{
if((HAL_GetTick() - tickstart ) > RCC_LSE_TIMEOUT_VALUE)
{
return HAL_TIMEOUT;
}
}
}
请大家指点
|
最佳答案
查看完整内容[请看2#楼]
采用内部低速时钟,断电后肯定不会走,如果采用LSE时钟的话,断电后时钟会走。你说卡在一个地方,可能性是32.768KZH的晶振没有起振。
|