Advertisement

STM32低功耗唤醒的三种方法

  •  5星
  •     浏览量: 0
  •     大小:None
  •      文件类型:None


简介:
本文详细介绍了在使用STM32微控制器时实现低功耗模式下有效唤醒的三种策略和技巧,帮助开发者优化能耗并提高设备能效。 设计要求如下:系统需按以下方式进入与退出睡眠模式: 1. 系统启动后2秒内配置RTC,在3秒之后触发一个报警事件。 2. 通过WFI指令使系统进入停机模式。 3. 若要唤醒系统至正常工作状态,可以通过按下Key按钮;否则在设定的时刻,RTC将自动产生报警中断以唤醒系统。 4. 当从停机模式退出后,系统时钟恢复到先前的状态(此时外部高速振荡器HSE和PLL是不可用的)。 5. 系统将在一段延时之后再次进入停机状态,并可重复上述操作无限次。 硬件电路设计采用与7.1小节应用实例相同的硬件配置。Key按钮通过PB9产生一个外部中断信号,LED1、LED2、LED3和LED4用于指示处理器模式及中断触发情况。 软件程序的设计包括以下内容: - 配置GPIOB口及相关引脚。 - 初始化RTC模块与设置报警事件。 - 设置PB端口的第9个引脚作为外部中断输入,并配置其为下降沿触发;同时,配置RTC以上升沿方式产生报警中断信号。 本项目包含三个源文件:STM32F10x.s、stm32f10x_it.c和main.c。其中STM32F10x.s是启动代码,所有中断服务子程序位于stm32f10x_it.c中;其余函数则在main.c中实现。 具体来说: - 函数SYSCLKConfig_STOP负责配置系统时钟、启用HSE及PLL,并将PLL设为系统时钟源。 - GPIO_Configuration用于设置GPIO的PC6至PC9和PB9引脚的功能。 - EXTI_Configuration用来配置外部中断线9(对应PB9)与17(RTC报警事件)的相关参数。 - NVIC_Configuration负责配置NVIC及中断向量表,主要是针对外部中断线9和17进行设置。 - 函数EXTI9_5_IRQHandler处理由Key按钮触发的中断,主要任务是切换LED2的状态。 - RTCAlarm_IRQHandler则响应RTC产生的报警事件,并翻转LED3的状态;同时清除唤醒标志。 运行时步骤: 1. 使用Keil uVision3通过ULINK 2仿真器连接EduKit-M3实验平台。打开PWR_TEST目录下的项目,进行编译链接操作; 2. 在软件调试模式下启动程序,在逻辑分析仪中监视GPIOC的输出状态变化,并使用Peripherals-General Port-GPIOB模拟按钮动作; 3. 切换到硬件调试模式下载并运行代码,观察LED的状态切换情况。注意进入停机模式后无法通过仿真器进行后续调试。 4. 将编译好的程序烧录至目标平台Flash中复位设备,并检查LED灯的行为是否符合预期:系统正常工作时LED1亮而LED4灭;处于休眠状态则相反;按下按钮或发生RTC报警事件会相应地改变特定的指示灯。

全部评论 (0)

还没有任何评论哟~
客服
客服
  • STM32
    优质
    本文详细介绍了在使用STM32微控制器时实现低功耗模式下有效唤醒的三种策略和技巧,帮助开发者优化能耗并提高设备能效。 设计要求如下:系统需按以下方式进入与退出睡眠模式: 1. 系统启动后2秒内配置RTC,在3秒之后触发一个报警事件。 2. 通过WFI指令使系统进入停机模式。 3. 若要唤醒系统至正常工作状态,可以通过按下Key按钮;否则在设定的时刻,RTC将自动产生报警中断以唤醒系统。 4. 当从停机模式退出后,系统时钟恢复到先前的状态(此时外部高速振荡器HSE和PLL是不可用的)。 5. 系统将在一段延时之后再次进入停机状态,并可重复上述操作无限次。 硬件电路设计采用与7.1小节应用实例相同的硬件配置。Key按钮通过PB9产生一个外部中断信号,LED1、LED2、LED3和LED4用于指示处理器模式及中断触发情况。 软件程序的设计包括以下内容: - 配置GPIOB口及相关引脚。 - 初始化RTC模块与设置报警事件。 - 设置PB端口的第9个引脚作为外部中断输入,并配置其为下降沿触发;同时,配置RTC以上升沿方式产生报警中断信号。 本项目包含三个源文件:STM32F10x.s、stm32f10x_it.c和main.c。其中STM32F10x.s是启动代码,所有中断服务子程序位于stm32f10x_it.c中;其余函数则在main.c中实现。 具体来说: - 函数SYSCLKConfig_STOP负责配置系统时钟、启用HSE及PLL,并将PLL设为系统时钟源。 - GPIO_Configuration用于设置GPIO的PC6至PC9和PB9引脚的功能。 - EXTI_Configuration用来配置外部中断线9(对应PB9)与17(RTC报警事件)的相关参数。 - NVIC_Configuration负责配置NVIC及中断向量表,主要是针对外部中断线9和17进行设置。 - 函数EXTI9_5_IRQHandler处理由Key按钮触发的中断,主要任务是切换LED2的状态。 - RTCAlarm_IRQHandler则响应RTC产生的报警事件,并翻转LED3的状态;同时清除唤醒标志。 运行时步骤: 1. 使用Keil uVision3通过ULINK 2仿真器连接EduKit-M3实验平台。打开PWR_TEST目录下的项目,进行编译链接操作; 2. 在软件调试模式下启动程序,在逻辑分析仪中监视GPIOC的输出状态变化,并使用Peripherals-General Port-GPIOB模拟按钮动作; 3. 切换到硬件调试模式下载并运行代码,观察LED的状态切换情况。注意进入停机模式后无法通过仿真器进行后续调试。 4. 将编译好的程序烧录至目标平台Flash中复位设备,并检查LED灯的行为是否符合预期:系统正常工作时LED1亮而LED4灭;处于休眠状态则相反;按下按钮或发生RTC报警事件会相应地改变特定的指示灯。
  • STM32 模式下RTC定时
    优质
    本文介绍了STM32微控制器在低功耗模式下利用实时时钟(RTC)进行定时唤醒的功能及其应用,帮助开发者实现更高效的电源管理。 STM32 RTC定时唤醒低耗模式是一种利用RTC(实时时钟)功能在特定时间自动从低功耗模式唤醒系统的技术。这种方法可以有效降低系统的能耗,在需要定期执行任务的应用场景中非常有用。通过设置RTC闹钟,可以在设定的时间点让微控制器从休眠状态恢复到正常工作状态,从而实现定时的周期性操作或监控。
  • 周期性测试
    优质
    本研究专注于开发一种针对物联网设备的周期性唤醒低功耗测试方法,以优化能耗并延长设备运行时间。 该MDK5工程全面测试了STM32L4芯片的几种低功耗模式,并且经过实际验证,在这些模式下电流消耗约为0.4微安。用户可以选择不同的工作模式,系统能够周期性地唤醒以执行任务。此外,代码中包含多种可以直接调用的功能接口,如FLASH读写结构体、ADC电压采集和RTC实时时钟显示等功能。所有代码均遵循良好的编写规范,并配有清晰的注释说明。
  • STM32 Stop模式下(RTC结合中断)
    优质
    本文介绍了在使用STM32微控制器时,如何通过设置Stop模式实现低功耗,并利用RTC配合外部中断来高效地唤醒系统,适用于需要长时间待机的应用场景。 STM32F103在STOP模式下实现低功耗,并利用外部中断以及RTC唤醒功能。程序无需进行任何修改即可直接使用,如有问题可以交流讨论。
  • STM32F030定时 5分钟RTC
    优质
    本项目专注于利用STM32F030微控制器实现低能耗环境下长达五分钟的RTC定时唤醒功能,适用于需要长时间休眠并精确唤醒的应用场景。 STM32F030C8T 低功耗模式下的Standby待机模式定时5分钟RTC唤醒功能测试:PA12和PB3在进入低功耗状态前为低电平,经过5分钟后被RTC唤醒,此时PA12和PB3变为高电平。
  • STM32L15X模式与RTC能测试
    优质
    本项目专注于STM32L15X系列微控制器的低功耗模式及其RTC唤醒功能的实验研究,旨在验证其在节能和定时唤醒方面的性能。 设备每分钟唤醒一次,在停止模式下耗电为7微安,并持续30秒;在正常工作状态下耗电为10毫安,同样持续30秒。
  • STM32L051在STOP模式中RTC
    优质
    本篇文章详细探讨了如何在STM32L051微控制器中利用RTC(实时时钟)实现低功耗STOP模式下的定时唤醒功能,旨在降低系统能耗的同时确保精确的时间管理。 STM32L051在低功耗STOP模式下使用RTC唤醒的工程代码涉及配置RTC以设定特定时间点唤醒设备,并设置系统进入STOP模式的相关参数。实现这一功能需要正确初始化RTC,包括设置时钟源、校准周期和报警事件等步骤。同时,还需要确保电源管理模块能够响应RTC触发的中断信号,从而从低功耗状态恢复到正常工作模式。 具体来说,在编写代码之前应熟悉STM32L0系列微控制器的数据手册和技术参考手册中的相关内容,特别是关于RTC和电源控制寄存器的部分。这些文档提供了详细的配置步骤以及可能遇到的问题解决方案。此外,还需要确保硬件电路设计支持低功耗操作,并且外部晶振或RC振荡器等时钟源能够满足系统的需求。 为了实现上述功能,开发者可以参考官方提供的库函数或者编写自定义代码来完成RTC初始化、定时设置和中断处理程序的开发工作。这通常包括配置相关寄存器以启用所需的特性以及编写适当的回调函数以便在特定条件下唤醒设备并执行预定任务。
  • STM32待机模式下RTC实验与测试
    优质
    本实验研究了在STM32微控制器处于低功耗待机模式时,实时时钟(RTC)如何有效唤醒系统,并进行了详细的性能测试。 使用STM32F102R8T6通过串口打印输出字符串后进入待机状态,在此状态下耗电量为4微安。
  • 基于STM32F103内部RTC项目
    优质
    本项目采用STM32F103微控制器结合内部实时时钟(RTC)模块,实现低功耗模式下的定时唤醒功能,适用于长时间待机的应用场景。 STM32F103内部RTC低功耗唤醒工程适用于KEIL4软件,并且可以直接下载使用。