STM32WL LSE起振问题:添加反馈电阻后的调试与分析

需积分: 5 0 下载量 167 浏览量 更新于2024-08-03 收藏 606KB PDF 举报
本文档主要讨论了在使用STM32WLE5JB开发板时遇到的一个问题,即在启用LSE(Low-Speed External Oscillator)作为外部时钟源后,LPUART的串口打印功能失效,程序在执行HAL_RCC_OscConfig函数时出现卡死。这个问题发生在客户在STM32CubeMX生成的工程中,原本在不使用外部时钟的情况下,LPUART可以正常工作。 首先,问题的确认阶段,建议客户检查LPUART的时钟配置,包括是否正确设置了HSE(High-Speed External Oscillator)和LSE的连接及配置。客户尝试了官方提供的LPUART唤醒例程,但结果依然相同,表明问题可能出在外部时钟的起振上。进一步测试发现,无论是更换32MHz晶振、调整负载电容还是使用TCXO(Temperature Compensated Crystal Oscillator),都无法检测到32MHz信号,程序在调用HAL_RCC_OscConfig时停滞。 问题分析深入到硬件层面,通过STM32WLATslave例程在客户样机上重现了问题,同样在该函数处卡死。然而,单步调试揭示了关键问题所在:LSE的初始化过程中存在问题,程序在等待LSE ready信号,但信号始终未出现。相关的代码片段显示了一个死循环,如果LSE未准备好,就会一直等待直到超时。 为解决这个问题,文档建议将RTC(Real-Time Clock)的时钟源更改为HSE_RTC,如图一所示。这样做之后,ATslave例程能够正常运行,表明HSE能够提供稳定的时钟,32MHz晶振起振成功。这表明可能存在硬件故障或LSE电路设计上的缺陷,需要进一步排查LSE的连接、供电以及是否受到干扰等因素。 本文提供了在STM32WLE5JB上使用LSE作为外部时钟源时遇到的起振问题的详细分析和解决方案,强调了时钟配置、硬件检查和信号稳定性在调试过程中的重要性。通过修改RTC时钟源,问题得到了解决,但仍需关注其他可能导致起振问题的潜在因素。