OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 52988|回复: 58

来跟大家简单说说STM8的停机模式吧!让大家少走点弯路!

  [复制链接]

69

主题

289

帖子

3

精华

金牌会员

Rank: 6Rank: 6

积分
1294
金钱
1294
注册时间
2013-3-14
在线时间
62 小时
发表于 2014-2-13 13:22:43 | 显示全部楼层 |阅读模式
做天刚把移动电源的程序写的差不多了,主要是把低功耗加上了!写的时候发现网上都没有比较系统的教程,教大家怎么一步步实现低功耗,我也是看了好多帖子和官方的低功耗应用笔记,外加风驰开发板的群里的一个东北哥们的指导,才应用成功了,在此感谢他!好了,废话不多说了。进入正题吧!

首先,STM8有三种低功耗模式,即等待、活跃停机和停机。具体它们三者有什么区别自己看官方手册去吧,这里只讲停机模式的应用,其他的一笔带过!

一、进入的方式:
等待模式进入用的指令是WFI,而活跃停机和停机用的都是halt(),所不同的是,在执行halt指令之前,如果开启了AWU,则是活跃停机,反之则是停机。还有一点要说明的是,在停机模式下独立看门狗是不能养的,而只能养窗口看门狗。
二、具体进入的步骤:
1、首先,你声明一个标志位,名字自己取。这个标志位是用来判断系统是该处于运行模式还是处于停机模式的。我这里用fPowerOn_flag,如下:
bool fPowerOn_flag = FALSE;
有了这个标志位以后就写下面的部分了:
int main(void)
{
  //设置内部16M晶振为系统时钟
  Clk_Init(); //系统时钟初始化函数
  MWWDG_Init();//窗口看门狗初始化函数

  while (1)
  {  
    Free_WWDG();//喂狗函数
    if(fPowerOn_flag == FALSE){
      Halt_OffDevice();//停机前关闭不需要的外设
      halt();//进入停机模式
      System_Init();//系统初始化函数
    }
    
    if(fPowerOn_flag){
    //运行代码在这里添加
    }
  }
}
以上就是一个停机模式的模板了,大家参照着用就可以了。系统上电默认是进入停机模式,然后通过按键唤醒进入运行模式。下面为大家讲一下主函数中每个函数的写法和功能吧!
2、各函数说明:
a、时钟初始化函数:
void Clk_Init(void)                
{
  CLK_DeInit();//复位时钟寄存器
  CLK_HSICmd(ENABLE);//使能内部高速时钟
  CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV4);//配置内部高速时钟(时钟分频器:4分频),系统时钟4MHz
  CLK_ClockSecuritySystemEnable();//开启时钟安全系统
}
这个函数我想不用多讲了,大家都懂的。
b、窗口看门狗函数:
void MWWDG_Init(void)
{
  WWDG_Init(COUNTERINIT, WINDOW);//COUNTERINIT = 0x7f,WINDOW = 0x77
}
这个是窗口看门狗初始化函数。
void Free_WWDG(void)
{
  INT8U CounterValue;
  CounterValue = (INT8U)(WWDG_GetCounter() & 0x7F);
  
  /* 
   * 判断是否小于所设置的窗口上限值 
   * 只有小于窗口上限值才能清零
   */
  if(CounterValue < WINDOW){
    WWDG_SetCounter(COUNTERINIT);
  }
}
这个是窗口看门狗喂狗函数,防止看门狗复位。
c、停机前外设设置函数:
void Halt_OffDevice(void)
{
  //关闭设备前,设置系统主时钟,和中断 
  Clk_Init();  
  
  //CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV4);
  
  ADC1_DeInit();
  TIM1_DeInit();

  //停机前关闭不需要的功能模块的时钟  
  CLK_PeripheralClockConfig(CLK_PERIPHERAL_TIMER3,DISABLE);
  CLK_PeripheralClockConfig(CLK_PERIPHERAL_TIMER1,DISABLE);
  CLK_PeripheralClockConfig(CLK_PERIPHERAL_ADC,DISABLE);
  CLK_PeripheralClockConfig(CLK_PERIPHERAL_TIMER2,DISABLE);
  CLK_PeripheralClockConfig(CLK_PERIPHERAL_TIMER4,DISABLE);
  CLK_PeripheralClockConfig(CLK_PERIPHERAL_AWU,DISABLE);
  CLK_PeripheralClockConfig(CLK_PERIPHERAL_I2C,DISABLE);
  CLK_PeripheralClockConfig(CLK_PERIPHERAL_UART2,DISABLE);
  
  GPIO_Init(GPIOA,GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3,GPIO_MODE_OUT_PP_LOW_SLOW);
  
  GPIO_Init(GPIOB,GPIO_PIN_HNIB,GPIO_MODE_OUT_PP_LOW_SLOW);
  GPIO_Init(GPIOB,GPIO_PIN_2|GPIO_PIN_3,GPIO_MODE_OUT_PP_LOW_SLOW);
  
  GPIO_Init(GPIOC,GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4,GPIO_MODE_OUT_PP_HIGH_SLOW);
  GPIO_Init(GPIOC,GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7,GPIO_MODE_OUT_PP_LOW_SLOW);
  
  GPIO_Init(GPIOD,GPIO_PIN_LNIB,GPIO_MODE_OUT_PP_LOW_SLOW);
  GPIO_Init(GPIOD,GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6,GPIO_MODE_OUT_PP_LOW_SLOW);
  
  GPIO_Init(GPIOE,GPIO_PIN_LNIB,GPIO_MODE_OUT_PP_LOW_SLOW);
  GPIO_Init(GPIOE,GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7,GPIO_MODE_OUT_PP_LOW_SLOW);
  
  GPIO_Init(GPIOG,GPIO_PIN_0,GPIO_MODE_OUT_PP_LOW_SLOW);
  GPIO_Init(GPIOG,GPIO_PIN_1,GPIO_MODE_OUT_PP_HIGH_SLOW);
  
  InPut_Init();
  enableInterrupts();
}
这个函数主要就是在停机前设置好系统的时钟,并且关闭一切不必要的外设的时钟,如AD,定时器等等的时钟。并且最重要的是要设置好系统唤醒的条件和使能中断。对于IO口的设置,对于外设是高电平工作的,那么设置成推挽输出低,对于是低电平工作的那么设置成推挽输出高。这里说明一下,浮空输入我不知道可不可以,大家可以试试。
d、唤醒口初始化设置函数:
void InPut_Init(void)
{
  //与按键相连的引脚设置为输入模式
  GPIO_Init(P_PortD,Power,GPIO_MODE_IN_PU_IT);      
  //将PD7引脚的TLI中断设置为下降沿中断,TLI是最高优先级中断
  EXTI_SetTLISensitivity(EXTI_TLISENSITIVITY_FALL_ONLY);
  
  GPIO_Init(P_PortA,CHARGE_IN,GPIO_MODE_IN_PU_IT);    
  //将GPIOD端口设置为上升沿触发中断--因为充电器插入时产生一个高电平,拔出时产生一个下降沿
  EXTI_SetExtIntSensitivity(EXTI_PORT_GPIOA,EXTI_SENSITIVITY_RISE_FALL);   
}
系统可以通过两个IO口里唤醒CPU,一个是按键,设置成最高优先级中断TLI,并且是下降沿中断。还有一个就是充电器插入唤醒中断,这里我的移动电源是要充电的,所以要做充电器的插入拔除检测,因此要设置成上升沿下降沿中断方式。
讲完以上的函数,大部分的功能都讲完了,剩下的就是在stm8s_it.c里面处理中断了。

按键唤醒中断处理:

INTERRUPT_HANDLER(TLI_IRQHandler, 0)

{
  /* In order to detect unexpected events during development,
     it is recommended to set a breakpoint on the following instruction.
  */
  delay_ms(20);//延时消抖
  if(!GPIO_ReadInputPin(P_PortD,Power)){
    delay_ms(20);
    time_count = 0;
    if(fPowerOn_flag == FALSE){
      fPowerOn_flag = TRUE;
    }
    else{
      if(fExitDCPower_flag == FALSE) fPowerOn_flag = FALSE;
    }
  }
}
首先是20ms的延时,然后再次检测IO口的电平,如果为低,那么说明按键按下了,再延时20ms。然后处理系统工作的标志位。如果系统在停机模式,那么按下按键以后,系统进入工作模式;反之,系统进入停机模式。这里说明一下,那个else里面的处理要加入一个限制条件,就是在运行模式下再次按下唤醒按键时,要先判断充电器有没有插入,如果没有插入,则系统进入停机模式,如果插入了,系统则不处理,继续保持运行模式对电池充电。

充电器插入唤醒中断处理:

INTERRUPT_HANDLER(EXTI_PORTA_IRQHandler,3)
{
  /* In order to detect unexpected events during development,
     it is recommended to set a breakpoint on the following instruction.
  */
  delay_ms(20);
  if(GPIO_ReadInputPin(P_PortA,CHARGE_IN)){
    delay_ms(20);
    if(fPowerOn_flag == FALSE) fPowerOn_flag = TRUE;
    
    if(fExitDCPower_flag == FALSE) fExitDCPower_flag = TRUE;
  }   
  else{
  delay_ms(20);
  if(fExitDCPower_flag == TRUE) fExitDCPower_flag = FALSE;
  }  
}

这里的话我相信大家也应该看得懂的,就不多言了!

好了,今天就讲到这里了。我想已经讲得够详细了吧,还有什么问题的话可以发邮件给我。我的邮箱是610967340@qq.com!拜拜,新的一年祝大家身体健康、工作顺利!

























正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

16

主题

107

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
332
金钱
332
注册时间
2015-12-3
在线时间
54 小时
发表于 2016-3-10 18:30:07 | 显示全部楼层
回复 支持 0 反对 1

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2014-2-13 14:08:35 | 显示全部楼层
谢谢分享
回复 支持 反对

使用道具 举报

120

主题

7877

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12010
金钱
12010
注册时间
2013-9-10
在线时间
427 小时
发表于 2014-2-13 14:21:22 | 显示全部楼层
说的好,学习了,谢谢分享!
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

53

主题

324

帖子

0

精华

高级会员

Rank: 4

积分
598
金钱
598
注册时间
2012-6-18
在线时间
7 小时
发表于 2014-2-13 15:54:13 | 显示全部楼层
感谢分享
回复 支持 反对

使用道具 举报

69

主题

289

帖子

3

精华

金牌会员

Rank: 6Rank: 6

积分
1294
金钱
1294
注册时间
2013-3-14
在线时间
62 小时
 楼主| 发表于 2014-2-13 17:24:30 | 显示全部楼层
回复【4楼】565956807@qq.com:
---------------------------------
互相学习!
回复 支持 反对

使用道具 举报

4

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
91
金钱
91
注册时间
2012-4-11
在线时间
8 小时
发表于 2014-2-27 09:16:42 | 显示全部楼层
谢谢分享  学习了
回复 支持 反对

使用道具 举报

4

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
60
金钱
60
注册时间
2012-12-18
在线时间
3 小时
发表于 2014-4-8 19:53:20 | 显示全部楼层
虽然这个功能在13年已经用过了,但是现在看一看 还是觉得不错的!顶一下,感谢楼主的分享。
回复 支持 反对

使用道具 举报

15

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
110
金钱
110
注册时间
2014-2-23
在线时间
0 小时
发表于 2014-4-8 21:15:04 | 显示全部楼层
谢谢楼主  太感谢了
只要努力,一切皆有可能。
回复 支持 反对

使用道具 举报

5

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
67
金钱
67
注册时间
2014-4-8
在线时间
0 小时
发表于 2014-4-9 11:06:16 | 显示全部楼层
好贴,谢谢分享
回复 支持 反对

使用道具 举报

6

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
181
金钱
181
注册时间
2012-1-9
在线时间
24 小时
发表于 2014-5-7 23:02:46 | 显示全部楼层
非常感谢楼主无私奉献啊!
回复 支持 反对

使用道具 举报

11

主题

81

帖子

0

精华

高级会员

Rank: 4

积分
651
金钱
651
注册时间
2012-8-1
在线时间
68 小时
发表于 2014-6-4 11:23:17 | 显示全部楼层
很好的讲解,谢谢楼主分享
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
23
金钱
23
注册时间
2014-7-4
在线时间
0 小时
发表于 2014-9-9 11:41:01 | 显示全部楼层
好贴!谢谢分享!
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
23
金钱
23
注册时间
2014-9-22
在线时间
0 小时
发表于 2014-9-23 10:21:28 | 显示全部楼层
感谢分享。。。。。。
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
23
金钱
23
注册时间
2014-9-22
在线时间
0 小时
发表于 2014-9-23 15:27:18 | 显示全部楼层
楼主,进入停机前你那IO口设置,是只设置外设用到的IO吗???怎么我看有些帖子说是要设置所有没用的IO呢???
回复 支持 反对

使用道具 举报

27

主题

308

帖子

1

精华

高级会员

Rank: 4

积分
774
金钱
774
注册时间
2012-6-19
在线时间
19 小时
发表于 2014-12-10 10:43:23 | 显示全部楼层
好贴收藏!!
回复 支持 反对

使用道具 举报

69

主题

289

帖子

3

精华

金牌会员

Rank: 6Rank: 6

积分
1294
金钱
1294
注册时间
2013-3-14
在线时间
62 小时
 楼主| 发表于 2014-12-17 12:18:33 | 显示全部楼层
回复【14楼】aichixiaobaicai:
---------------------------------
这个自己可以测试一下,看看功耗上有没有什么太大的区别
回复 支持 反对

使用道具 举报

0

主题

7

帖子

0

精华

初级会员

Rank: 2

积分
77
金钱
77
注册时间
2014-5-9
在线时间
8 小时
发表于 2015-6-18 16:09:09 | 显示全部楼层
谢谢楼主的分享  刚好正在研究低功耗怎么写   就是进不了   想用PB7口检测高低电平是否运行低功耗   不知道是不是中断没写好
回复 支持 反对

使用道具 举报

4

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
71
金钱
71
注册时间
2014-12-8
在线时间
3 小时
发表于 2015-7-17 16:17:18 | 显示全部楼层
“ 对于IO口的设置,对于外设是高电平工作的,那么设置成推挽输出低,对于是低电平工作的那么设置成推挽输出高。”你好这句话怎么理解。谢谢
回复 支持 反对

使用道具 举报

4

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
71
金钱
71
注册时间
2014-12-8
在线时间
3 小时
发表于 2015-7-17 16:18:07 | 显示全部楼层
回复【17楼】769854714:
---------------------------------
你好,我也在写低功耗,但是进不了,能否指教一下?谢谢
回复 支持 反对

使用道具 举报

6

主题

56

帖子

0

精华

初级会员

Rank: 2

积分
182
金钱
182
注册时间
2015-6-13
在线时间
19 小时
发表于 2015-7-26 12:53:43 | 显示全部楼层
回复【3楼】八度空间:
---------------------------------
您好!有STM8库函数手册吗?中英文的都行!
回复 支持 反对

使用道具 举报

69

主题

289

帖子

3

精华

金牌会员

Rank: 6Rank: 6

积分
1294
金钱
1294
注册时间
2013-3-14
在线时间
62 小时
 楼主| 发表于 2015-7-26 19:56:12 | 显示全部楼层
回复【20楼】隨颩洏過:
---------------------------------
没,STM8就没出中文版的。英文的就网上下载库函数,然后里面会有帮助文档。
回复 支持 反对

使用道具 举报

6

主题

56

帖子

0

精华

初级会员

Rank: 2

积分
182
金钱
182
注册时间
2015-6-13
在线时间
19 小时
发表于 2015-7-26 21:18:58 | 显示全部楼层
回复【21楼】liuyongliuyong:
---------------------------------
好的,谢谢!
回复 支持 反对

使用道具 举报

120

主题

7877

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12010
金钱
12010
注册时间
2013-9-10
在线时间
427 小时
发表于 2015-7-27 20:23:04 | 显示全部楼层
回复【20楼】隨颩洏過:
---------------------------------
没有耶
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

4

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
65
金钱
65
注册时间
2014-3-21
在线时间
12 小时
发表于 2015-8-11 22:17:46 | 显示全部楼层
窗口看门狗在停机模式下还运行吗? 小弟想用独立看门狗,但是在停机模式下会不会额外增加功耗呢??
回复 支持 反对

使用道具 举报

69

主题

289

帖子

3

精华

金牌会员

Rank: 6Rank: 6

积分
1294
金钱
1294
注册时间
2013-3-14
在线时间
62 小时
 楼主| 发表于 2015-8-12 22:17:39 | 显示全部楼层
回复【24楼】donsbin:
---------------------------------
恩,运行。最低的是停机模式,其次是活跃停机了
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
22
金钱
22
注册时间
2014-11-5
在线时间
0 小时
发表于 2015-8-22 08:37:52 | 显示全部楼层
我想用stm8做一个无线通信模块,可以通过串口有无收发进入低功耗模式或正常模式吗?
回复 支持 反对

使用道具 举报

69

主题

289

帖子

3

精华

金牌会员

Rank: 6Rank: 6

积分
1294
金钱
1294
注册时间
2013-3-14
在线时间
62 小时
 楼主| 发表于 2015-8-23 17:17:31 | 显示全部楼层
回复【26楼】cqbslzp:
---------------------------------
应该可以,你按照这个框架就可以实现了,你看看手册,看看低功耗模式可不可以通过串口中断唤醒,可以的话就行得通
回复 支持 反对

使用道具 举报

3

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
54
金钱
54
注册时间
2015-8-26
在线时间
1 小时
发表于 2015-8-26 17:10:04 | 显示全部楼层
学习了啊啊啊
回复 支持 反对

使用道具 举报

15

主题

56

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
231
金钱
231
注册时间
2015-3-12
在线时间
18 小时
发表于 2015-8-28 21:13:15 | 显示全部楼层
停机模式,halt里外设时钟不是关闭的吗,还需要自己写函数关闭么?
回复 支持 反对

使用道具 举报

3

主题

5

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2015-8-27
在线时间
0 小时
发表于 2015-8-29 13:37:18 | 显示全部楼层
感谢分享,谢谢楼主
回复 支持 反对

使用道具 举报

1

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
141
金钱
141
注册时间
2013-5-14
在线时间
28 小时
发表于 2015-9-25 16:51:13 | 显示全部楼层
好文啊,正在做低功耗相关的
回复 支持 反对

使用道具 举报

2

主题

30

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
362
金钱
362
注册时间
2015-9-24
在线时间
41 小时
发表于 2015-9-25 20:07:54 | 显示全部楼层
回复【20楼】隨颩洏過:
---------------------------------
回复【20楼】隨颩洏過:
---------------------------------
有个软件是专门生产STM8S库函数语句的   上网找一下会有  很方便
回复 支持 反对

使用道具 举报

6

主题

40

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
207
金钱
207
注册时间
2012-7-26
在线时间
30 小时
发表于 2016-3-2 17:14:53 | 显示全部楼层
谢谢!
回复 支持 反对

使用道具 举报

16

主题

107

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
332
金钱
332
注册时间
2015-12-3
在线时间
54 小时
发表于 2016-3-10 18:34:15 | 显示全部楼层
我想问一下,那个中断优先级是根据INTERRUPT_HANDLER(EXTI_PORTA_IRQHandler,3),这个里面最后的数字判断的吗?楼主,求解答,不管你能不能看见我的问题,都要谢谢你!
回复 支持 反对

使用道具 举报

30

主题

705

帖子

1

精华

新手上路

积分
21
金钱
21
注册时间
2013-3-14
在线时间
52 小时
发表于 2016-3-24 17:17:36 | 显示全部楼层
cool,楼主大赞啊。小弟一直对halt的用法迷茫中,这下终于理解了。这么好的帖子,管理员给个酷贴吧。
原子哥是不是又要出黑科技了呀。^_^...
回复 支持 反对

使用道具 举报

69

主题

289

帖子

3

精华

金牌会员

Rank: 6Rank: 6

积分
1294
金钱
1294
注册时间
2013-3-14
在线时间
62 小时
 楼主| 发表于 2016-3-27 18:29:34 | 显示全部楼层
fanghuiopenedv 发表于 2016-3-24 17:17
cool,楼主大赞啊。小弟一直对halt的用法迷茫中,这下终于理解了。这么好的帖子,管理员给个酷贴吧。

本帖就是酷帖
回复 支持 反对

使用道具 举报

16

主题

107

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
332
金钱
332
注册时间
2015-12-3
在线时间
54 小时
发表于 2016-3-28 10:23:23 | 显示全部楼层
谢谢分享
回复 支持 反对

使用道具 举报

0

主题

38

帖子

0

精华

初级会员

Rank: 2

积分
150
金钱
150
注册时间
2012-12-8
在线时间
21 小时
发表于 2016-5-29 16:19:08 | 显示全部楼层
好像没看到楼主把时钟切换到lsi啊,我测试过不切换的话功耗降不了多少
回复 支持 反对

使用道具 举报

69

主题

289

帖子

3

精华

金牌会员

Rank: 6Rank: 6

积分
1294
金钱
1294
注册时间
2013-3-14
在线时间
62 小时
 楼主| 发表于 2016-5-31 20:05:26 | 显示全部楼层
romeo0108 发表于 2016-5-29 16:19
好像没看到楼主把时钟切换到lsi啊,我测试过不切换的话功耗降不了多少

恩,我这里只是提供一个思路!
回复 支持 反对

使用道具 举报

3

主题

7

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2015-12-27
在线时间
6 小时
发表于 2016-6-1 17:21:59 | 显示全部楼层
liuyongliuyong 发表于 2014-12-17 12:18
回复【14楼】aichixiaobaicai:
---------------------------------
这个自己可以测试一下,看看功耗上有没 ...

还是有区别的,我一般都设置上啦模式 ,对了你QQ验证答案多少,我加一下
回复 支持 反对

使用道具 举报

3

主题

7

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2015-12-27
在线时间
6 小时
发表于 2016-6-1 17:24:13 | 显示全部楼层
对了你QQ验证答案多少,我加一下
回复 支持 反对

使用道具 举报

39

主题

597

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
2109
金钱
2109
注册时间
2011-9-3
在线时间
119 小时
发表于 2016-9-21 12:01:04 | 显示全部楼层
好贴,顶。
回复 支持 反对

使用道具 举报

1

主题

43

帖子

0

精华

初级会员

Rank: 2

积分
131
金钱
131
注册时间
2015-8-26
在线时间
20 小时
发表于 2017-1-3 23:03:27 | 显示全部楼层
谢谢楼主的帖子!
学以致用!
回复 支持 反对

使用道具 举报

0

主题

48

帖子

0

精华

高级会员

Rank: 4

积分
816
金钱
816
注册时间
2016-8-9
在线时间
230 小时
发表于 2017-4-13 13:46:34 | 显示全部楼层
不错啊 刚想学习怎样低功耗 就来枕头啊 感谢感谢
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2017-12-13
在线时间
11 小时
发表于 2017-5-17 16:49:30 | 显示全部楼层
感谢分享,写的很好
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
16
金钱
16
注册时间
2017-6-2
在线时间
2 小时
发表于 2017-6-13 11:09:46 | 显示全部楼层
参考一下,感谢分享!
回复 支持 反对

使用道具 举报

1

主题

6

帖子

0

精华

新手上路

积分
21
金钱
21
注册时间
2017-6-18
在线时间
3 小时
发表于 2017-6-19 11:51:06 | 显示全部楼层
楼主功耗 可以做到多少呀  停机模式下
回复 支持 反对

使用道具 举报

7

主题

31

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
255
金钱
255
注册时间
2016-12-30
在线时间
74 小时
发表于 2017-6-23 23:59:27 | 显示全部楼层
楼主写的好,真是受益匪浅。stm8的停机模式真的很特别,停机并不是断电停机,感觉是程序在halt命令处暂停了,各个变量不变值不变,唤醒后并不是从头执行main函数,而是从halt命令后面继续执行。一开始真不知道唤醒后代码从哪里重新运行,走了很多弯路。
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
2
金钱
2
注册时间
2017-6-29
在线时间
0 小时
发表于 2017-6-29 16:28:52 | 显示全部楼层
留个脚印,备用
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 13:29

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表