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 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值