STM32进入和退出睡眠模式

发布时间:2024-03-18  

1.设计要求

要求系统按如下方式进入和退出睡眠模式:在系统启动2秒后,将RTC在3秒钟之后配置为产生一个报警事件,接着通过WFI指令使系统进入停机模式。如果要唤醒系统到正常模式,可通过按Key按钮;否则,在3秒钟后,会产生RTC报警中断自动将系统唤醒。一旦退出停机模式,系统时钟被配置成先前的状态(在停机模式下,外部高速振荡器HSE和PLL是不可用的)。经过一段延时之后,系统将再次进入停机状态,并可按上述操作无限重复。


2. 硬件电路设计

硬件电路采用与7.1小节应用实例一样硬件电路,可见图7-10。其中Key按钮用于通过PB9产生一个外部中断,LED1、LED2、LED3、LED4则用于显示处理器所处的模式和中断触发情况。

3 .软件程序设计

根据任务要求,程序内容主要包括:

(1) 配置GPIOB口,配置RTC,配置外部中断;

(2) 配置PB口第9个引脚作为外部中断,下降延触发;配置RTC报警中断,上升沿触发;

(3) 两个中断服务子程序的内容分别是:切换LED2和LED3灯的状态;

整个工程包含3个源文件:STM32F10x.s、stm32f10x_it.c和main.c,其中STM32F10x.s为启动代码,所有中断服务子程序均在stm32f10x_it.c中,其它函数则在main.c中。下面分别介绍相关的函数,具体程序清单见参考程序。

函数SYSCLKConfig_STOP用于当处理器从停机模式唤醒之后,配置系统时钟、使能HSE和PLL,并以PLL作为系统时钟源。当处理器处理停机模式的时候,HSE、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仿真器连接实验板,打开实验例程目录PWR_TEST子目录下的PWR.Uv2例程,编译链接工程;

(2) 选择软件调试模式,点击MDK 的Debug菜单,选择Start/Stop Debug Session项或CTRl+F5键,在逻辑分析仪中添加GPIOC_ODR.6、GPIOC_ODR.7、GPIOC_ODR.8、GPIOC_ODR.9,点击Run按钮即可,在逻辑分析仪中看到如图7-14,还可用Peripherals-General Port-GPIOB来模拟KEY按钮的动作;

(3) 选择硬件调试模式,选择Start/Stop Debug Session项或Ctrl+F5键,下载程序并运行,观察LED灯的变化情况。注意,当目标系统进入停机模式之后,将无法使用仿真器进行调试了;

(4) 退出Debug模式,打开Flash菜单>Download,将程序下载到开发板的Flash中,按RESET键复位,观察LED灯的情况,正常情况应为:系统处于运行模式时LED1亮、LED4灭;系统处于停机状态时LED1灭、LED4亮;当按下KEY按钮时LED2灯状态发生反转;当发生RTC报警时LED3状态发生反转。


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

相关文章

    会变成1,进入睡眠模式。Bit4 陀螺仪待机,bit3关闭温度传感器等等都不要开启,设置成0,bit[2:0]时钟选择自动。 可以看到设置成0,6轴数据全使能 复位初始化: #define......
    停止工作,外设仍在运行) • 停止模式 (所有时钟都停止) • 待机模式 ( 1.8 V 内核电源关闭) 这三种模式所需的功耗是逐级递减,也就是说待机模式功耗是最低的。 在睡眠模式中,仅关闭......
    期间的可用功能。为实现睡眠模式下最低功耗,除了硬件需要单个唤醒源,所有可以关闭的硬件模块均应关闭。通常,通用输入/输出 (GPIO) 唤醒源可提供最低睡眠电流,但将 GPIO 作为......
    时最大的频率不超过2MHz,对L1来说,它不能超过121KHz。 睡眠模式睡眠模式,系统的CPU也就是Cortex-M内核的时钟被关闭了,但外设是继续保持运转的它整个I/O的引脚状态与运行模式......
    PWR休眠模式和代码示例;2.1定义 在睡眠模式下,CPU 时钟关闭并且对其他时钟或模拟时钟源没有影响。当中断/事件发生时,所有外设继续运行并唤醒 CPU。 2.2配置休眠模式 2.2.1......
    在原有的基础上,加了待机唤醒功能。 STM32有3种低功耗模式: 1)睡眠模式(CM3内核停止,外设仍在工作) 2)停机模式(所有时钟都停止) 3)待机模式(1.8V内核电源关闭) 3种低功耗模式 其中最低功耗的是待机模式......
    void __inline WFI_SET(void) { WFI; } 4.3.5待机模式 待机模式可实现系统的最低功耗。该模式是在Cortex-M3深睡眠模式时关闭电压调节器。整个1.8V供电......
    耗: 可以在满足应用的前提下,降低MCU的运行主频,可以降低MCU功耗; 可以选择关闭不用的外设,以减低MCU功耗; 可以选择任务空闲时进入低功耗模式,包括睡眠模式、深度睡眠模式或待机模式......
    、静音模式、待机模式睡眠等待模式和睡眠模式,在低功耗模式下支持本地唤醒与远程唤醒;所提供的低功耗模式管理可极大节省 CAN 总线应用系统的电力,SIT1043带INH脚功能,能够控制给系统供电的LDO......
    保每节电池都正常运行。 图 1:电池管理系统简图 通过 TI 的电池监控器和平衡器提高准确性 TI 的 BQ79616-Q1 电池监控器和平衡器可以持续监控高电压电池,即使是在睡眠模式下也是如此。如果......

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

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

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

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

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

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

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