本人使用的是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模式进入之后如果需要串口唤醒则需要将串口接收引脚配置为外部中断(之前是串口中断)。
封装的进入停机模式的函数&