STM32
直播中

李志静

8年用户 1502经验值
私信 关注
[问答]

请问STM32L431 STOP2模式DEBUG如何才能好用?

STM32L431 STOP2模式 DEBUG  如何才能好用?跪求帮助谢谢!!

STM32L431 进入STOP2模式,已经开启HAL_DBGMCU_EnableDBGStopMode(); 并且使能了 PA13 ,PA14管脚时钟;

在程序进入主循环后,不断快速轮训。完全不受低功耗定时器,定时唤醒时序的控制。 程序无法在低功耗停止模式下DEBUG。

请问还需要开启什么吗?比如__HAL_DBGMCU_UNFREEZE_LPtiM1();这些是否必要?还有什么其他需要开启或关闭的地方,如SRAM,FLASH,WATCHDOG等?


另外,RCC_AHB3SMENR ,RCC_APB1SMENR1 什么条件下配置使用?


回帖(1)

杨平

2024-4-15 15:46:03
在STM32L4系列的微控制器中,要在低功耗停止模式下进行调试,需要按照以下步骤操作:

1. 开启DEBUG模式:调用`HAL_DBGMCU_EnableDBGStopMode()`函数,使能调试模式。这将允许在低功耗停止模式下进行调试。

2. 打开调试引脚的时钟:使用`__HAL_RCC_GPIOx_CLK_ENABLE()`函数打开调试引脚的GPIO时钟。对于PA13和PA14引脚,可以调用`__HAL_RCC_GPIOA_CLK_ENABLE()`函数。

3. 配置调试引脚:使用`GPIO_InitTypeDef`结构体配置引脚为推挽输出模式,速度为高速,并将引脚设置为输出。

4. 使能调试唤醒时钟:如果你想让调试器通过低功耗定时器定时唤醒芯片,需要在进入低功耗停止模式之前调用`__HAL_DBGMCU_UNFREEZE_LPTIM1()`函数。

5. 配置其他时钟:根据具体应用的需求,你可能需要配置其他外设的时钟。例如,如果你正在使用串口进行调试,你需要为串口打开时钟。

6. 配置RCC的AHB3SMENR和APB1SMENR1寄存器:这些寄存器配置了在低功耗模式下是否使能相关外设的时钟。这些寄存器通常会在初始化函数中被配置,但实际的配置取决于你的应用。

  关于RCC_AHB3SMENR寄存器,你需要根据你的应用配置需要使能的外设,比如DMA和ADC。
  关于RCC_APB1SMENR1寄存器,你需要根据你的应用配置需要使能的外设,如定时器。

7. 最后,你可能还需要配置SRAM、FLASH和WATCHDOG等。这些配置同样根据你的应用需求而定。

根据你的问题描述,你已经按照正确的步骤进行了配置,但仍然无法在低功耗停止模式下进行调试。请确认你已经正确配置了低功耗定时器和其他相关外设的时钟,并检查是否存在其他问题。

请注意,低功耗停止模式下的调试功能可能会受到一些限制。例如,有些调试功能无法在低功耗停止模式下使用,或者在进入低功耗停止模式之后可能无法正常工作。所以,根据你的具体应用需求,你可能需要在进行调试时使用其他低功耗模式,而不是停止模式。

希望对你有所帮助!如果还有其他问题,请随时提问。
举报

更多回帖

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