STM32低功耗三种方式唤醒

STM32低功耗三种方式唤醒

去发现同类优质开源项目:https://gitcode.com/

项目描述

本项目提供了一个关于STM32低功耗唤醒的资源文件,详细介绍了如何通过三种方式唤醒STM32系统。项目设计要求系统在启动2秒后进入停机模式,并通过RTC报警事件或外部按键中断来唤醒系统。唤醒后,系统会重新配置时钟并进入下一个停机周期,实现低功耗循环。

设计要求

  1. 系统进入和退出睡眠模式

    • 系统启动2秒后,配置RTC在3秒钟后产生报警事件。
    • 通过WFI指令使系统进入停机模式。
    • 系统可以通过按下Key按钮或RTC报警中断唤醒。
    • 唤醒后,系统时钟恢复到停机前的状态。
    • 经过一段延时后,系统再次进入停机状态,循环往复。
  2. 硬件电路设计

    • 硬件电路与7.1小节应用实例相同,具体可见图7-10。
    • Key按钮用于通过PB9产生外部中断。
    • LED1、LED2、LED3、LED4用于显示处理器模式和中断触发情况。
  3. 软件程序设计

    • 主要程序内容包括:配置GPIOB口、RTC、外部中断;配置PB9引脚为外部中断,下降沿触发;配置RTC报警中断,上升沿触发。
    • 中断服务子程序内容:切换LED2和LED3灯的状态。
    • 工程包含3个源文件:STM32F10x.s、stm32f10x_it.c和main.c。

主要函数介绍

  • SYSCLKConfig_STOP:处理器从停机模式唤醒后,配置系统时钟、使能HSE和PLL,并以PLL作为系统时钟源。
  • GPIO_Configuration:配置GPIO的PC6、PC7、PC8、PC9和PB9。
  • EXTI_Configuration:配置外部中断线9(PB9)和17(RTC报警)。
  • NVIC_Configuration:配置NVIC及中断向量表,主要配置外部中断线9和17。
  • EXTI9_5_IRQHandler:处理按钮Key(PB9)触发的中断,翻转LED2灯的状态。
  • RTCAlarm_IRQHandler:处理RTC报警触发的中断,翻转LED3灯的状态,并清除唤醒标志。

运行过程

  1. 软件调试模式

    • 使用Keil uVision3通过ULINK 2仿真器连接EduKit-M3实验平台,打开PWR_TEST子目录下的PWR.Uv2例程,编译链接工程。
    • 选择软件调试模式,点击Debug菜单,选择Start/Stop Debug Session项或Ctrl+F5键,在逻辑分析仪中添加GPIOC_ODR.6、GPIOC_ODR.7、GPIOC_ODR.8、GPIOC_ODR.9,点击Run按钮即可观察LED灯的变化。
  2. 硬件调试模式

    • 选择硬件调试模式,下载程序并运行,观察LED灯的变化情况。
    • 注意:系统进入停机模式后,无法使用仿真器进行调试。
  3. 下载程序

    • 退出Debug模式,打开Flash菜单>Download,将程序下载到EduKit-M3实验平台的Flash中,按RESET键复位,观察LED灯的情况。
    • 正常情况下,系统处于运行模式时LED1亮、LED4灭;系统处于停机状态时LED1灭、LED4亮;按下KEY按钮时LED2灯状态反转;发生RTC报警时LED3状态反转。

注意事项

  • 系统进入停机模式后,无法使用仿真器进行调试。
  • 下载程序到实验平台后,按RESET键复位,观察LED灯的变化情况。

去发现同类优质开源项目:https://gitcode.com/

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刁苹宜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值