MCU进入低功耗之后,以极低的功耗维持着系统“活着”,但是醒过来是需要一定条件的,比如定个“闹钟”,按键“按一下”等,目前常用的“正常的”唤醒方式有以下几种:
1、RTC定时唤醒;
2、外部中断唤醒(按键或者通讯唤醒);
3、特殊唤醒引脚唤醒(某些引脚具有专门的唤醒功能)。
下面,我们再来看一看如何通过RTC和外部中断唤醒MCU。
1、RTC定时唤醒
依然是从手册中我们可以看到,所有的RTC时间都可以把MCU从低功耗模式中唤醒:
介绍使用RTC的定时功能实现,定时1S唤醒一次,使用cubemx进行对RTC进行配置:
生成代码的时候,勾选这个选项,可以把不用的引脚配置为模拟输入模式,降低功耗:
RTC的配置如图,使能RTC,1S中断唤醒一次:
接着,我们在while(1)里面写下面的代码,通过串口打印出唤醒信息,实际上代码在执行的时候,遇到红框出的低功耗入口函数,代码会停止在这里,当遇到唤醒信号的时候,会继续往下执行,一般进入STOP模式之前我们会先配置好唤醒所需要的条件,相应的IO等进入低功耗状态,唤醒之后,把硬件相关的重新初始化,才可以正常使用。
外部中断也可以用来唤醒MCU,需要提供一个下降沿用以把MCU从低功耗中唤醒。
我们就直接使用串口的RX作为外部中断引脚唤醒,使用串口3的RX也即是PB11引脚,关于外部中断这里不做具体介绍了,需要的小伙伴可以私信我,专门出一期介绍。
需要先配置IO口为外部中断模式:
在进入低功耗模式之前一定要先配置,这样才能够正常唤醒。
关键字:STM32 低功耗
引用地址:
STM32低功耗唤醒方式
推荐阅读最新更新时间:2024-11-12 21:37
STM32单片机学习---PWM输出
上午花了半天时间熟悉了stm32的PWM模块。中午利用午饭时间把PWM功能调试成功。当然,很简单的东西,也许很多前辈估计都不屑一顾的东西。 今天最大的感叹就是网络资源实在是个巨大的宝库,真的很庆幸,在这个复杂的社会环境里,在一个到处充斥着私心、私利的时代,各个网站,各个论坛上的众多网友都时刻保持着开源的氛围。学习一定要和他人交流,而网络提供了这么一个极好的平台。 废话少说,言归正传。 实现功能:采用定时器2的通道2,使PA1输出频率1K,占空比40的PWM波形,用PA8随意延时取反led灯,指示程序运行。 首先熟悉一下定时器的PWM相关部分。看图最明白 其实PWM就是定时器的一个比较功能而已。 CNT里的值不断++,一
[单片机]
STM32几种IO设置模式
在 STM32中选用 IO 模式 (1) 浮空输入 _IN_FLOATING —— 浮空输入,可以做 KEY 识别, RX (2)带上拉输入 _IPU—— IO 内部上拉电阻输入 (3)带下拉输入 _IPD—— IO内部下拉电阻输入 (4) 模拟输入 _AIN —— 应用 ADC 模拟输入,或者低功耗下省电 (5)开漏输出 _OUT_OD —— IO 输出 0接 GND , IO 输出 1,悬空,需要外接上拉电阻,才能 实现输出高电平。当输出为 1时, IO 口的状态由上拉电阻拉高电平,但由于是开漏输出模式, 这样 IO 口也就可以由外部电路改变为低电平或不变。 可以读 IO 输入电平变化, 实现 C51的 IO 双向功能 (6)
[单片机]
021_STM32程序移植之_ESP8266连接onenet
本次教程是使用STM32C8T6通过ESP8266-12F模块将数据传输到ONENET云端去,并且云端能够下发命令给单片机来实现云端控制。本次实验硬件设备:STM32C8T6最小系统,ESP8266-12F模块,wifi。下面是简单的设备传输结构图: /********************************神奇的分割线********************************/ 视频演示教程:https://v.qq.com/x/page/i0814q78no3.html 资料下载地址:https://download.csdn.net/download/xiaoguoge11/10858840 欢迎
[单片机]
stm32 DMA的Stream和Channel的映射关系
DMA框图 DMA1中总共有8个stream,而每个stream可以配置成不同的传输源和目的地址,这就是channel。1个不同的源和目的就叫1个channel。
[单片机]
MCU厂整合低功耗无线技术 瞄准IoT、数字家庭与创客市场
DIGITIMES Research观察,随穿戴式装置与物联网(Internet of Things;IoT)兴起,针对IoT装置小体积、极低功耗的需求,厂商纷开发强调极低功耗、整合Sub-GHz甚至2.4GHz Wi-Fi/BLE(Bluetooth Low Energy)等无线通讯技术的IoT微控制器(MCU)/模组,IoT MCU市场规模在2022年预估可达35亿美元以上。 各MCU厂对IoT MCU均会提供Linux/RTOS(Real Time Operating System)或其它开放来源作业系统(OS)、驱动程式、中介软体或联网堆叠的软硬体统包方案(Turnkey Solution),但开发策略有许多差异。
[物联网]
STM32中使用HAL库重定向printf()函数
函数添加头文件 #include stdio.h 添加函数 // 重定向函数1 int fputc(int ch,FILE *f) { uint8_t temp ={ch}; HAL_UART_Transmit(&UartHandle,temp,1,2); //UartHandle是串口的句柄 } //重定向函数2 PUTCHAR_PROTOTYPE { HAL_UART_Transmit(&UARTHandle, (uint8_t *)&ch, 1, 0xFFFF); return ch; } 在keil中勾选使用C库 之后就可以 使用printf()函数,像C语言一样输出打印信息,支持 %
[单片机]
STM32的中断优先级说明(抢占式与响应式优先级)
注:查看寄存器请看《ARM Cortex-M4权威指南》,由于本人采用库开发,所以就不深究寄存器了。总结资料来源于原子的《STM32F4库开发指南》,总结于此,方便查找。 STM32F4 的中断分组:STM32F4 将中断分为 5 个组,组 0~4。该分组的设置是由 SCB- AIRCR 寄存器的 bit10~8 来定义的。如下图: 通过这个表,我们就可以清楚的看到组 0~4 对应的配置关系,例如组设置为 3,那么此时所有的 82 个中断,每个中断的中断优先寄存器的高四位中的最高 3 位是抢占优先级,低 1 位是响应优先级。每个中断,你可以设置抢占优先级为 0~7,响应优先级为 1 或 0。 抢占优先级的级别高于
[单片机]
新型传感器提升电动机性能并降低功耗
现如今的电动机位置传感方式多种多样,光学编码器因其高精确度和易受微控制器控制的标准化“ABI”输出而倍受电机控制系统设计者的青睐。 但由于多种原因,非接触式磁性位置传感器现在成为了更好的选择。由于磁性位置传感器的尺寸更小,能够抵御灰尘、油脂、水汽等污染物,因而能够作用于对尺寸和/或可靠性有更高要求的应用。 在过去,有一个对磁性位置传感器不利的趋势:新型无刷直流(BLDC)电动机在总体上有高效率目标,以减少功耗。与此同时,设计者被赋予了增加新电机力矩的任务,实现电机的低转速运行,以支持直接驱动系统。最终,变速器将不再是必需品,这就大大降低了物料成本。 要使得力矩和效率达到最大化,无刷直流电动机在高转速下就必须有一个极其精确的发动
[嵌入式]