STM32CubeMX系列 | 待机唤醒

发布时间:2023-03-21  

1. 低功耗模式简介

系统或电源复位后,微处理器处于运行状态,运行状态下HCLK为CPU提供时钟,内核执行程序代码。当CPU不需继续运行时(例如等待某个外部事件),可以利用多个低功耗模式来节省功耗。用户需要根据最低电源消耗、最快速启动时间和可用的唤醒源等条件,选定一个最佳的低功耗模式。STM32提供了3种低功耗模式,以达到不同层次的降低功耗的目的: - 睡眠模式(CM3内核停止工作,外设仍在运行)(功耗最高) - 停止模式(所有时钟都停止)(典型电流消耗20uA左右) - 待机模式(1.8V内核电源关闭)(最低电流消耗2uA左右)

在运行模式下,也可以通过如下方式降低功耗: - 降低系统时钟 - 关闭APB和AHB总线上未被使用的外设的时钟

本实验仅对STM32的最低功耗模式(即待机模式)来做介绍。待机模式可实现STM32的最低功耗,该模式实在CM3深睡眠模式时关闭电压调节器,整个1.8V供电区域被断电,PLL/HSI/HSE振荡器也被断电,SRAM和寄存器内容丢失,仅备份的寄存器和待机电路维持供电 下图为STM32进入及退出待机模式的条件:

2. 硬件设计

本实验用D1指示灯提示系统正常运行,指示灯熄灭表示进入待机模式,K_UP按键用来唤醒待机模式,并使用串口1打印相关调试信息

  • D1指示灯

  • K_UP按键

  • USART1串口

3. 软件设计

3.1 STM32CubeMX设置

  • RCC设置外接HSE,时钟设置为72M

  • PC0设置为GPIO推挽输出模式、上拉、高速、默认输出电平为高电平

  • PA0设置为GPIO下拉输入模式

  • USART1选择为异步通讯方式,波特率设置为115200Bits/s,传输数据长度为8Bit,无奇偶校验,1位停止位

  • 输入工程名,选择工程路径(不要有中文),选择MDK-ARM V5;勾选Generated periphera initialization as a pair of ‘.c/.h’ files per IP ;点击GENERATE CODE,生成工程代码

3.2 MDK-ARM编程

  • 在main.c文件中添加进入待机模式函数

/* USER CODE BEGIN 4 */

void Sys_Enter_Standby(void){

    __HAL_RCC_PWR_CLK_ENABLE();     //使能PWR时钟

    __HAL_PWR_CLEAR_FLAG(PWR_FLAG_WU);      //清除Wake_UP标志

    HAL_PWR_EnableWakeUpPin(PWR_WAKEUP_PIN1);   //设置WAKEUP用于唤醒

    HAL_PWR_EnterSTANDBYMode();     //进入待机模式

}

/* USER CODE END 4 */

在主函数while循环中添加如下测试程序

while (1){

    printf("Time: 5rn");

    HAL_GPIO_WritePin(GPIOC,GPIO_PIN_0,GPIO_PIN_RESET);     

    HAL_Delay(1000);


    printf("Time: 4rn");

    HAL_GPIO_WritePin(GPIOC,GPIO_PIN_0,GPIO_PIN_SET);       

    HAL_Delay(1000);


    printf("Time: 3rn");

    HAL_GPIO_WritePin(GPIOC,GPIO_PIN_0,GPIO_PIN_RESET);     

    HAL_Delay(1000);


    printf("Time: 2rn");

    HAL_GPIO_WritePin(GPIOC,GPIO_PIN_0,GPIO_PIN_SET);       

    HAL_Delay(1000);


    printf("Time: 1rn");

    HAL_GPIO_WritePin(GPIOC,GPIO_PIN_0,GPIO_PIN_RESET);     

    HAL_Delay(1000);


    printf("Entered Standby Mode...Please press KEY_UP to wakeup system!rn");

    Sys_Enter_Standby();

}

4. 下载验证

编译无误后下载到开发板,可以看到系统运行时D1指示灯不断闪烁,5秒钟后进入待机模式,此时D1指示灯熄灭。当按下KEY_UP按键或复位按键时,待机模式被唤醒,系统重新运行,同时串口打印提示信息


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    wkup_en/int_en 时马上触发 wkup_pend 导致进入中断,然后在中断中关闭 wkup_en/int_en,退出中断后进入低功耗模式,导致无法唤醒/唤醒后不进入唤醒中断。因此唤醒......
    stm32单片机休眠模式后无法下载程序怎么办;利用stm32单片机的休眠模式,使单片机间歇的休眠从而实现低功耗的目的。往往会出现进入休眠后无法唤醒,导致下一次程序烧不进去。通常的解决办法是:一般......
    进入正常的工作模式,就无法进行休眠,就可以通过ISP来下载程序。③  使用STlink烧写程序,STlink至少要接4根线(SWDIO、SWCLK、GND、SW-RST),一般的下载程序只需要前三根就可以了,但是以防出现休眠无法唤醒......
    方向也不同,而且有的型号超声波热能表为了省电在数秒之后黑屏,以及夹表时并不能保证积分仪水平放置,所以使用光探头自动读取数据的方式并不是很适用。现在超声波热能表大多都配备M-BUS数据传输线,可以......
    停机模式。 STM32H7从停机模式唤醒后要重新配置系统时钟,这点跟F1,F4系列一样。 测试发现STM32H7的LPTIM1的中断可以唤醒停机模式,其它几个LPTIM2-5无法唤醒。详情记录看此贴:http......
    示波器维修不开机/黑屏故障维修;分享泰克示波器在维修过程种常见故障有以下几种: 1、不开机,风扇可以转,或者开机后白屏,花屏 2、自检校准失败 3、自检通过,校准失败,有个别通道波形失真 4、旋钮......
    STM32G0B1看似无法唤醒的一种异常现象分析;1. 引言 STM32 G0 系列产品具有丰富的外设和强大的处理性能以及良好的低功耗特性,被广泛用于各类工业产品中,包括......
    应用笔记 | 看似无法唤醒的一种异常现象分析;1. 引言 STM32 G0 系列产品具有丰富的外设和强大的处理性能以及良好的低功耗特性,被广泛用于各类工业产品中,包括一些需要低功耗需求的应用。 2......
    监视器黑屏是什么原因 监视器黑屏和蓝屏的区别;监视器黑屏是什么原因 当监视器出现黑屏时,可能有多个原因导致。以下是一些可能的原因: 1. 电源问题:监视器的电源供应可能受到干扰、断开或故障,导致屏幕无法......
    程师提到:STM32F103 进入STOP 模式后无法通过串口唤醒 ? 分析原因:这位工程师对低功耗唤醒机制理解有误:STM32进入 STOP 模式后不能直接通过 UART 等中断外设唤醒, 只能通过 EXTI......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>