规避LSI启动不稳导致HardFault的关键在于:不要直接以LSI作为PLL输入,而是先让LSI稳定后再切换。具体操作为:1)使能LSI后,等待LSI_RDY标志置位(超时保护,如100ms);2)若需PLL,建议先用HSI作为PLL源完成系统时钟配置,待系统运行稳定后再切换至LSI(若必须用LSI,则切换前再次确认LSI_RDY,并增加软件延时如10ms);3)在PLL配置中,确保PLLM、PLLN等参数在LSI频率(典型32.768kHz)下计算正确,避免超频;4)启用时钟安全系统(CSS)或看门狗(IWDG)作为兜底,若时钟失效则复位。此外,可在启动代码中增加时钟错误检测中断(如NMI),捕获异常并进入安全状态。实操建议:使用HAL库时,调用HAL_RCC_OSCConfig配置LSI,并轮询LSI_RDY,再调用HAL_RCC_ClockConfig,期间关闭中断防止干扰。
mcuku 阿沐 · 2026-08-27