STM8S 低功耗(1)

STM8S的低功耗模式有4种。 关系如下。

本次使用的停机(HALT)

使用了内部定时器,外部中断,LED指示是否进入低功耗。

在while循环中设置如下

 1 while(1)
 2 {
 3           if(!IR_IN)  // 外部中断产生
 4         {
 5                       执行程序...
 6           
 7               IR_IN = 1; 
 8         }
 9         else
10         {
11             TIM1_Cmd(DISABLE); // 关闭定时器
12             ClrLED;  //关闭LED
13             _asm("halt"); // 进入停机模式
14             SetLED;      // 开启LED
15         }   
16 }

在主函数中检测到 外部中断了,执行相关函数。

函数自行完成后,进入else

其中如果使用halt模式,可以不写11行。如果使用WFI模式需要写11行

在else中 13行开起停机模式。

如果停机模式正常进入,LED灯是熄灭的,如果没有进入停机模式,LED灯被开启。 用来判断状态。

测试:

按键触发,外部中断引脚产生下降沿中断,点亮LED灯(在中断函数中点亮的)

当按键弹起后LED灯熄灭。。

由于测试工具限制,只能确保电流低于1ma。

原文地址:https://www.cnblogs.com/LJWJL/p/4069110.html