STM32F103的低功耗模式

文章介绍了STM32F103芯片的STOP和STANDBY两种低功耗模式,详细阐述了如何通过寄存器、标准库和HAL库进入及退出这些模式,并提供了示例代码。不同方法各有优劣,寄存器方式高效但复杂,标准库方便但效率稍低,HAL库则提供更全面的支持和错误处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、原理

STM32F103的低功耗模式有多种,常用的有STOP模式和STANDBY模式。这两种模式都可以有效降低芯片的功耗,特别是在电池供电的场景下,可以延长电池寿命。

STOP模式:主要关闭CPU、SRAM和Flash时钟,只保留少数必要的时钟和外设。在这种模式下,芯片可以被外部事件或者唤醒引脚唤醒。

STANDBY模式:除关闭CPU、SRAM和Flash时钟外,还会关闭外设和所有时钟,只有唤醒引脚可以唤醒芯片。

二、使用寄存器方式

进入低功耗模式时,首先需要关闭不需要的外设时钟,然后设置相应的寄存器进入低功耗模式。在STOP模式下,需要使用__WFI()指令等待CPU进入休眠状态。

退出低功耗模式时,需要清除相应的标志位,并重新使能外设时钟。

三、使用标准库和HAL库方式

标准库和HAL库都提供了PWR_EnterSTOPMode()函数和PWR_EnterSTANDBYMode()函数,可以方便地进入低功耗模式。在进入低功耗模式前,同样需要关闭不需要的外设时钟。在退出低功耗模式时,需要清除相应的标志位,并重新使能外设时钟。

四、使用三种方式的特点

使用寄存器方式

使用寄存器方式编写代码的优点是代码量少,执行效率高。但是需要熟悉STM32F103的寄存器映射,写起来比较麻烦。

使用标准库方式

标准库方式使用起来比较方便,只需要调用库函数即可。但是库函数封装了很多操作,执行效率相对较低。

使用HAL库方式

HAL库方式是ST公司官方提供的高级库,使用起来比标准库更加方便。HAL库提供了更加丰富的功能和更加完善的错误处理机制,但是也需要占用更多的代码空间和执行时间。

五、代码<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值