STM32F4在Usart上从STOP退出

时间:2019-04-12 05:17:37

标签: stm32f4discovery usart wakeup

STM32F429发现板

在Uart接收中断下无法从STOP模式退出,因为所有时钟都停止了吗?据我了解,在中断模式下配置的所有EXTI Line都可以唤醒微控制器。EXTI0-EXTI15。

请,我很感谢任何有关如何开始使用它的建议。

我尝试使用STM32多维数据集Mx进行以下操作:

  1. PA0作为GPIO_EXT0并生成了代码
  2. 如何将uart接收引脚链接到GPIO_EXT0

2 个答案:

答案 0 :(得分:0)

虽然您对EXTI0-EXTI15引脚可配置为唤醒是正确的,但不幸的是,当停止模式打开时,该特定系列的微控制器(STM32F4)不能激活USART时钟。这意味着外围设备看不到任何数据。您可以;但是,请使用外部看门狗,RTC等...这将允许您使用当前的微控制器。有解决方法。

您可以使用睡眠模式,在所有外围设备都处于运行状态时,只有Cortex M4 Clock和CPU会停止。但是,启用所有外围时钟后,您将消耗更多电流。

如果您对停止模式下的USART时钟功能感兴趣,请签出STM32L0或STM32L4。这两个系列都具有该功能,并且效果非常好,我强烈建议这两个系列用于低功耗应用,因为这是它们的设计目的。

答案 1 :(得分:0)

可以在软件中完成,但不能使用STM32CubeMX

即使该引脚被配置为备用功能,GPIO输入和EXTI(如果已配置)仍处于活动状态。像配置UART接收那样配置UART RX引脚,然后在相应的SYSCFG->EXTICR*寄存器中选择该引脚作为EXTI源,并相应地配置EXTI寄存器。您可能想要在下降沿中断,因为线路空闲状态为高。

请记住,MCU需要一些时间才能恢复操作,因此,不可避免地会丢失UART端口上接收到的某些数据。

不能将PA0配置为UART RX引脚,请使用与所用UART的RX引脚相对应的EXTI线。