做了一个简单的项目,电路板使用电池供电,需要系统在待机时低功耗。而对外接口只有4个按键,也就是唤醒必须要通过这四个按键。

  系统功能就不介绍了,只给出进入低功耗的代码和退出低功耗的代码。

  使用芯片为stm8s103

 1 /*****************************************************************
 2 //进入到停机模式 
 3 *****************************************************************/
 4 void EnterHalt()
 5 {
 6     int j=255;
 7     
 8     /* 防止定时器中断唤醒了CPU */
 9     TIM1_CR1 &= 0xFE;     /*  用户操作计数器关掉 */
10   
11     asm("sim");
12     
13     /* PC3 PC4 PC5 PC6 使能外部中断 */
14     PC_DDR_DDR3 = 0;
15     PC_CR1_C13 = 1;
16     PC_CR2_C23 = 1;
17     
18     PC_DDR_DDR4 = 0;
19     PC_CR1_C14 = 1;
20     PC_CR2_C24 = 1;
21     
22     PC_DDR_DDR5 = 0;
23     PC_CR1_C15 = 1;
24     PC_CR2_C25 = 1;
25     
26     PC_DDR_DDR6 = 0;
27     PC_CR1_C16 = 1;
28     PC_CR2_C26 = 1;
29     
30     EXTI_CR1 = 0x00;  //PC端口 低电平和下降沿都中断
31     
32     for(j=255;j>0;j--);  //延时一会
33     
34     asm("rim");
35     asm("HALT"); /* 进入停机模式 */
36 }
View Code

相关文章:

  • 2021-11-14
  • 2021-12-03
  • 2021-08-28
  • 2021-06-17
  • 2022-12-23
  • 2021-07-08
猜你喜欢
  • 2022-01-29
  • 2022-12-23
  • 2022-12-23
  • 2021-07-18
  • 2022-12-23
  • 2021-06-11
  • 2022-12-23
相关资源
相似解决方案