STM8单片机低功耗等待(Wait)模式实现

2023年 8月 16日 55.6k 0

  在平时使用单片机的时候,一般不太关心功耗的问题。但是当产品需要使用电池供电的话,那么功耗问题就要必须重视起来。那么如何降低单片机的功耗呢?STM8官方资料上给我们提供了以下几点建议:
在这里插入图片描述
  如果项目中对系统的时候有要求,那么就不能通过降低系统时钟来降低功耗,此时就可以通过使用低功耗模式来降低功耗。低功耗模式有三种:等待(Wait)活跃停机(Active Halt)停机(Halt)

  官方文档中介绍等待模式的设置只需要执行WFI指令即可。
在这里插入图片描述
  如果需要退出低功耗模式,就需要通过外部中断、内部中断、或者复位来实现。在这里插入图片描述
  现在就来演示一下如何通过代码设置等待(Wait)模式。

  这里使用一个LED灯闪烁来表示单片机运行在正常模式中。上电后LED灯开始闪烁,闪烁几秒钟之后使用指令进入 低功耗的 等待(Wait)模式,此时LED灯将不再闪烁,此时如果单片机内部发生了中断或者IO口上出现了外部中断,那么单片机就会退出低功耗模式,LED灯就会继续闪烁。

  那么编写程序时就要用到IO口来控制LED灯的亮灭,还需要一个内部中断,这里就使用内部定时器中断,然后还需要一个外部IO的触发中断。

  首先初始化LED的IO口,这里使用PB5口来驱动LED灯。为了方便控制,这里使用宏定义将PB5口的输出重新定义为LED,这样给LED赋值的时候,就相当于直接操作了寄存器。

#define  LED       PB_ODR_ODR5
void LED_GPIO_Init( void )
{
PB_DDR |= ( 1

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论