你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

查看: 14998|回复: 11

stm8s低功耗

[复制链接]

19

主题

61

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
发表于 2011-2-21 22:43:06 | 显示全部楼层 |阅读模式
本人想用stm8s103做一款低功耗产品,外部中断唤醒来解红外编码,有谁能提供我一个思路或给个进入stm8s低功耗设置的例子,我刚学stm8s,非常感谢
<
回复

使用道具 举报

134

主题

4489

回帖

239

蝴蝶豆

版主

最后登录
2020-12-9
发表于 2011-2-22 09:37:50 | 显示全部楼层

RE:stm8s低功耗

给你一个建议:
红外模块开启中断功能,连接MCU的外部中断,通过外部中断来唤醒去读取数据。休眠功能,我稍后上传一个例程给你。
回复 支持 反对

使用道具 举报

19

主题

61

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
 楼主| 发表于 2011-2-26 01:54:22 | 显示全部楼层

回复:stm8s低功耗

回复第 2 楼 安 于2011-02-22 01:37:50发表:
给你一个建议:
红外模块开启中断功能,连接MCU的外部中断,通过外部中断来唤醒去读取数据。休眠功能,我稍后上传一个例程给你。 

托大家指点,程序已经完成,中断加定时做的,去掉程序注释部分,运行很正常,但是一进入Halt模式(加入注释部分程序),运行就不正常了,请求各位给指教下,非常感谢!型号stm8s103f2,起用Hsi,复位电路用的是内部,nrst脚就加了个电容. 


    while ( 1 )
    {
      if(!(Ir_Flag&amp;0x08))
        {          
        if(Ir_Flag&amp;0x10){Ir_fenxi();}
        if(Ir_Flag&amp;0x01){Power_manage();}  }
      else{
              TIM2_CR1&amp;=~(0x01);  // 停止TIM2计数  
              CLK_PCKENR1=0x00;   //关闭外设时钟
              CLK_PCKENR2=0X00; //关闭外设时钟 
               _asm(&quot;halt&quot;);   //停机模式
             CLK_PCKENR1|=0X20; //打开TIM2时钟 
             TIM2_CR1|=0X01;  //启动TIM2计时
              Ir_Flag=0;     //初始化 
              }
   
         }
    }  
另外,安老大,您上传的例程我没看到啊,还请帮忙看看,急啊 
回复 支持 反对

使用道具 举报

19

主题

61

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
 楼主| 发表于 2011-2-27 11:51:42 | 显示全部楼层

RE:stm8s低功耗

我现在郁闷的就是不加halt功能,程序运行很正常啊,为什么一加这个halt,功能就不正常呢,而且时钟切换还正常,因为我设置断点的时候,显示切换正常

 
回复 支持 反对

使用道具 举报

19

主题

61

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
 楼主| 发表于 2011-2-27 11:53:37 | 显示全部楼层

RE:stm8s低功耗

CLK_SWR = 0xD2; /* Select HSE */
注释错误,应该是LSI
回复 支持 反对

使用道具 举报

19

主题

61

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
 楼主| 发表于 2011-2-27 12:38:04 | 显示全部楼层

RE:stm8s低功耗

if (CLK_CMSR != 0xE1)        //等待切换完毕   
     while(1);           //等待切换完毕  
     CLK_PCKENR1|=0X20;      //只打开TIM2 clock  
     TIM2_CR1|=0X01;        //起用TIM2计数   
     Ir_Flag=0;
上段有个错误,Ir_Flag=0;应该去掉,但是还是不正常,在线等各位指教
回复 支持 反对

使用道具 举报

19

主题

61

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
 楼主| 发表于 2011-2-27 13:33:52 | 显示全部楼层

RE:stm8s低功耗

已解决,谢谢安老大
回复 支持 反对

使用道具 举报

19

主题

61

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
 楼主| 发表于 2011-2-27 16:16:12 | 显示全部楼层

RE:stm8s低功耗

又有个问题是电流问题,目前有用到2个i/o口,一个做输入,外部中断有上拉电阻;一个输出接一个led灯和一个电阻到vdd,我在进入halt模式时,输出高电平的,应该是正确的;有用一个timer2,我也是在halt时将其关掉了,其他不用的时钟也都关了;即使这样也仍然有1.2mA的电流,以下是我的设置:
void GPIO_Init(void)  
{
    PB_DDR |= 0x20;              /* PB5 Output 其他输入.                  */
    PB_CR1 |= 0x20;              /* PB5推挽输  其他悬空输入                    */
    PB_CR2  = 0x00;              /* Output speed up to 2MHz. */

  PB_ODR=0X20;
    PD_DDR=0X00;
    PD_CR1=0X08;
    PD_CR2=0x08; /* PD3允许中断 其他禁止中断     */
    EXTI_CR1  = 0x80;            /*仅下降沿触发*/
    EXTI_CR2  = 0x00;
}
void CLK_Init(void)
{
    /* Configure HSI prescaler*/
    CLK_CKDIVR &amp;= ~0x10;          /*fMASTER频率 01: fHSI= fHSI RC output/2. */
    CLK_CKDIVR |= 0x01;           /* 001: fCPU=fMASTER/2. */
    CLK_PCKENR1=0x20;
    CLK_PCKENR2=0X00;
}
void TIM_Init(void)
{
    TIM2_PSCR =0x03; // 8分频 TIM2时基为1us
    TIM2_ARRH =0x00; //
    TIM2_ARRL =0x96; //
    TIM2_IER =0x01;  //使能TIM2中断
    TIM2_CR1 =0x81;  // 使能TIM2计数  
}
进入halt时的设置:
TIM2_CR1&amp;=~(0x01);  // 停止TIM2计数  
CLK_PCKENR1&amp;=~(0x20);
CLK_SWCR |= 0x02;            /* Enable switch */
CLK_SWR   = 0xD2;            /* Select LSI */
while (!(CLK_SWCR &amp; 0x08));  /* Wait for switch done */
if (CLK_CMSR != 0xD2)        //等待切换完毕
while(1); //等待切换完毕
_asm(&quot;nop&quot;);
_asm(&quot;halt&quot;);
CLK_SWCR |= 0x02;            /* Enable switch */
CLK_SWR   = 0xE1; //切换到HSI
while (!(CLK_SWCR &amp; 0x08));  /* Wait for switch done */
if (CLK_CMSR != 0xE1)        //等待切换完毕   
while(1); //等待切换完毕
CLK_PCKENR1|=0X20;  //只打开TIM2 clock
TIM2_CR1|=0X01; //起用TIM2计数  
难道是中断上拉口消耗电流,还是在切到LSI时要把HSI关掉?这个1.2mA正常吗
回复 支持 反对

使用道具 举报

19

主题

61

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
 楼主| 发表于 2011-2-27 19:29:12 | 显示全部楼层

RE:stm8s低功耗

怎么发不了图片?
电路是NRST =&gt;0.01UF电容到地
PD3=&gt;接红外接收头,由于外部没上拉电阻,我只能将PD3设为内部输入上拉
PB5=&gt;LED+电阻接到vdd
其他的什么都没接,用的HSI.当然vdd与vss之间是有电容的.
回复 支持 反对

使用道具 举报

0

主题

6

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
发表于 2013-12-3 14:44:11 | 显示全部楼层

回复:stm8s低功耗

我也遇到IO端口功耗大的问题,不知道怎么解决!
回复 支持 反对

使用道具 举报

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版