STM32L071 串口唤醒stop低功耗模式笔记

通过阅读操作手册总结如下:

1、uart 时钟源需要设置位HSI16 or LSE(32.768KHz)

2、uart_cr1 寄存器 UESM位 置为1 (使串口在stop模式下使能)在进入stop模式之前设置,退出以后清掉 (有些串口不支持进入stop模式)对应的hal库函数 HAL_UARTEx_EnableStopMode

3、使用标准的RXNE 中断可以唤醒,RXNEIE 位需在进入stop模式前置位

4、置位usart_CR3 的UCESM 位可以使串口时钟在stop模式下有效HAL_UARTEx_EnableClockStopMode

5、置位USART CR3的 WUFIE位 串口唤醒中断使能,在进入stop模式前置位(如果需要在唤醒中断中处理事务或者使用中断唤醒可以打开)

6、USART CR3的 WUS 位是两位 11 使能RXNE 唤醒属于事件唤醒,只有当usart关闭状态可以设置,HAL_UARTEx_StopModeWakeUpSourceConfig

7、在进入stop模式时不能正在进行串口传输

8、wuf位只要唤醒事件发生就会置位,不管是在stop模式还是正常模式。该位需要软件请除,通过对WUCF位置1可以清除,当清除UESM位时也可以清除WUF位__HAL_UART_CLEAR_FLAG(&hlpuart1,UART_CLEAR_WUF);

9、USART ISR寄存器中的REACK位可以用于进入stop模式之前检查串口是否准备好接收

HAL使用注意事项:

1、唤醒之后需要重新初始化系统时钟,否则系统运行速度会改变

2、如果使用事件唤醒需要打开stop模式的串口时钟 HAL_UARTEx_EnableClockStopMode 放在初始化串口之后防止被覆盖

3、HAL_PWR_EnterSTOPMode(PWR_MAINREGULATOR_ON,PWR_STOPENTRY_WFE); WFE代表事件唤醒 WFI代表中断唤醒

4、设置唤醒源也放在初始化串口之后,防止被覆盖 HAL_UARTEx_StopModeWakeUpSourceConfig

相关推荐
一米阳光86615 小时前
软考(中级)软件设计师核心笔记(3)数据库系统——概念、数据库设计
数据库·笔记·职场发展·软考·软件设计师
jianqiang.xue6 小时前
系统服务层设计:沉淀通用能力,让业务层只专注业务
stm32·单片机·嵌入式硬件·mcu·物联网·esp32
漏刻有时6 小时前
PHP GeoJSON转PNG地图渲染程序开发笔记、源码解读、问题复盘与整改方案
android·笔记·php
暗影凋落7 小时前
CMake构建学习笔记-SQLite库的构建
笔记·学习·sqlite
无垠的广袤8 小时前
【RA-Eco-RA2T1开发板】介绍、环境搭建、工程测试
单片机·嵌入式硬件·串口通信·uart·开发环境·blink
画面无声8 小时前
STM32的SPI通信原理与练习记录
c语言·stm32·单片机·嵌入式硬件·学习
weixin_456808388 小时前
【沁恒蓝牙开发】IAP升级流程
c语言·单片机·嵌入式硬件
zzm6289 小时前
精读KDD 2017最佳论文:通过类比挖掘加速创新 | 阅读笔记
笔记
你有哈莫吗9 小时前
CMake构建学习笔记-iconv库的构建
笔记·学习
万亿少女的梦16812 小时前
基于STM32、RFID与OneNET的开放性实验室电源节点设计
stm32·物联网·onenet·rfid·esp8266