最全面的STM32L431,STM32L4 Uart串口唤醒低功耗STOP1停止模式的解决方法

本文详细介绍了在STM32L431芯片上实现UART串口唤醒低功耗STOP1模式的关键步骤。调试时必须移除调试线以避免JTAG信号自动唤醒。串口应配置为HSI时钟,因为STOP模式唤醒后默认使用HSI。L系列STM32不推荐使用外部中断唤醒RX,而是直接利用串口的低功耗特性。通过手册了解到串口与EXTI线直接关联,无需额外配置。同时注意USART3无法从STOP2模式唤醒。
摘要由CSDN通过智能技术生成
  • 调试的时候一定要拔掉调试线,再进行低功耗测试,不然的话JTAG会自动去发信号给stm32造成自动唤醒,这点及其重要。
  • 要进行唤醒的串口一定要设置成HSI时钟,这点也最重要,因为stop模式唤醒后默认启动HSI时钟,如果用其他时钟唤醒后是关闭的,如果用串口采用其他时钟,是无法唤醒的。
    不推荐采用先将Rx先设置外部中断的方法,那是针对F系列的办法,对于L系列,天然具备串口唤醒低功耗停止模式 在这里插入图片描述
    注意了以上两点,就可以开始了,下边看代码

  __HAL_RCC_WAKEUPSTOP_CLK_CONFIG(RCC_STOP_WAKEUPCLOCK_HSI); 
  WakeUpSelection.WakeUpEvent = UART_WAKEUP_ON_READDATA_NONEMPTY;
  if (HAL_UARTEx_StopModeWakeUpSourceConfig(&UartHandle, WakeUpSelection)!= HAL_OK)
  {
    Error_Handler(); 
  }
 
  /* Enable the UART Wake UP from STOP1 mode Interrupt */
  __HAL_UART_ENABLE_IT(&UartHandle, UART_IT_WUF);  
  /* enable MCU wake-up by UART */
  HAL_UARTEx_EnableStopMode(&UartHandle);
  /* enter STOP1 mode */
  HAL_PWREx_EnterSTOP1Mode(PWR_STOPENTRY_WF
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值