STM32F030低功耗之停机模式的进入和唤醒

本文介绍了在STM32F030F4P6上实现低功耗设计,特别是停机模式的进入和通过串口唤醒的详细过程。在停机模式中,通过设置SLEEPDEEP和PDDS寄存器,并调用库函数进入停机模式。唤醒时,中断服务函数EXTI4_15_IRQHandler()处理唤醒事件,并在唤醒后需要重新配置系统时钟和初始化串口。关键点在于进入停机模式前需将串口接收引脚设为外部中断,唤醒后要重新配置时钟和串口。
摘要由CSDN通过智能技术生成

本人使用的是STM32F030F4P6进行从机低功耗的设计。设计需求是和主机进行状态同步,主机超时不从串口给回馈(主机关机了)从机进入停机模式等待串口来数据进行唤醒(主机开机了)。

1.停机模式介绍

STM32F030F4P6有三个低功耗模式。待机模式下(standby)功耗最低但是需要wake_up引脚上升沿或者RTC闹钟才能进行唤醒,在硬件已经设计好的基础上不满足本次软件设计的需求。然后考虑功耗第二低的停机模式(stop),刚好停机模式能够被任一外部中断包括串口中断进行唤醒。

2.停机模式的进入

停机模式的进入由数据手册可知,需要将SLEEPDEEP寄存器置1,PDDS寄存器置0,还要设置PWR->CR位。这些操作在库函数的PWR_EnterSTOPMode(PWR_Regulator_ON, PWR_STOPEntry_WFI);里面已经封装好了,直接调用即可。调用该函数时需要选择是WFI模式还是WFE模式,关于这两个模式的区别在数据手册中有介绍,个人理解的是WFI模式进入之后如果需要串口唤醒则需要将串口接收引脚配置为外部中断(之前是串口中断)。

封装的进入停机模式的函数&

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值