如何将STM32睡眠模式与UART一起使用

How can I use STM32 sleep mode with UART

提问人:ElectronicsFuns 提问时间:11/12/2023 最后编辑:Mark RotteveelElectronicsFuns 更新时间:11/13/2023 访问量:38

问:

由于 MCU 的功耗,我想使用睡眠模式。我的目标是基本的,但我不能使用这个过程。

我将通过 UART 从另一个 MCU 获取数据。如果我的其中一个数据是 6,我想唤醒我的 MCU,我想让它保持唤醒状态。如果不是 6,我想让它保持睡眠模式。

我有两种选择,第一个是我之前提到的UART数据,第二个是我的ZeroCross中断。但这两个目标都是为我准备的。我不明白如何在基本条件下使用它。

if (rxdata==6){
//wake-up
}

else if (!rxdata==6){
//sleep-mode
}
STM32 UART 睡眠模式 MCU

评论

1赞 Jib 11/12/2023
如果您将 MCU 配置为进入睡眠模式并在数据接收时唤醒,那么无论您收到什么数据,MCU 都将保持唤醒状态。你想检查一下你是否希望它再次进入睡眠状态。rxdata != 6
0赞 ElectronicsFuns 11/12/2023
谢谢。我按照你的建议进行了编辑。你能帮我代码方面吗?有一些功能,但 ı 几乎无法理解这些
1赞 Jib 11/12/2023
首先,进入适当的深度睡眠模式(参见 HAL 示例),然后配置并使用 uart,最后启用 MCU 唤醒以进入深度睡眠并在 uart 时唤醒。您可以发布给您带来麻烦的代码片段(哪些配置、哪些功能等)

答:

1赞 0___________ 11/13/2023 #1

我不明白如何在基本条件下使用它。

你不能像睡觉一样,核心不会执行任何代码。

如果 UART 可以检测到特定字符,它可以调用中断来唤醒内核。