1、SLEEP 模式:很容易实现,可以由中断唤醒,但省电较少。这时候要配合时钟的关闭来节电:不需要用到的外设关闭时钟,要用到时才打开。例如USART:要发送数据前,把USART的时钟使能,数据包发送完成后,立即关闭时钟。
2、STOP 模式:需要外部中断唤醒。RTC报警唤醒给该模式带来了更加灵活的应用。但应用中有一个问题需要注意:在ADC数据采样的应用场合。如果使用STOP模式,假设采样率为200HZ,5毫秒唤醒一次启动ADC 采样,通过测试STOP唤醒的周期并不是很固定(可能是唤醒后需要恢复时钟设置,唤醒后自动使用内部的HSI时钟做为系统时钟),造成采样周期不是很固定,对滤波不利,例如工频陷波。
1、STM32进入STOP模式后,当串口接收到数据时,需要唤醒STM32。
进入STOP模式前、退出STOP模式后,需要怎么进行设置?
答案:
进入stop模式前,将串口的RxD设置为外部中断输入。
在stop模式时,RxD端口接收到数据时(有上升沿或下降沿时),产生中断。
中断服务程序中,恢复MCU的时钟,再将RxD端口当串口接收端口使用即可