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
跟蹤發現卡在這個地方:
@file stm32h7xx_hal_rcc.c
/* 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;
}
}
}
請大家指點
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/7877.html
標籤:單片機/工控
下一篇:嵌入式
