STM32F4从Usart上的STOP退出接收中断

问题描述 投票:-1回答:2

STM32F429发现板:

在Uart接收中断时无法退出STOP模式,因为所有时钟都停止了?据我所知,任何在中断模式下配置的EXTI线都可以唤醒单片机.EXTI0 - EXTI15。

拜托,我很感激任何关于如何开始的建议。

我用STM32 cube Mx尝试了以下内容:

  1. PA0作为GPIO_EXT0并生成代码
  2. 如何将uart接收引脚链接到GPIO_EXT0
stm32f4discovery usart wakeup
2个回答
0
投票

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

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

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


0
投票

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

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.