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

查看: 7142|回复: 4

关于halt模式电流求助

[复制链接]

19

主题

61

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
发表于 2011-2-27 16:26:26 | 显示全部楼层 |阅读模式
外部中断加唤醒做的程序,目前功能都正常,目前就碰到电流问题,项目有用到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 &= ~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&=~(0x01);  // 停止TIM2计数 
CLK_PCKENR1&=~(0x20);
CLK_SWCR |= 0x02;            /* Enable switch */
CLK_SWR   = 0xD2;            /* Select LSI */
while (!(CLK_SWCR & 0x08));  /* Wait for switch done */
if (CLK_CMSR != 0xD2)        //等待切换完毕
while(1); //等待切换完毕
_asm("nop");
_asm("halt");
CLK_SWCR |= 0x02;            /* Enable switch */
CLK_SWR   = 0xE1; //切换到HSI
while (!(CLK_SWCR & 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:27:18 | 显示全部楼层

RE:关于halt模式电流求助

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

使用道具 举报

134

主题

4489

回帖

239

蝴蝶豆

版主

最后登录
2020-12-9
发表于 2011-2-28 08:42:05 | 显示全部楼层

RE:关于halt模式电流求助

在休眠以前,把IO口改为搞阻态就行。这样是因为你有输入和输出,导致的电流变大。
回复 支持 反对

使用道具 举报

19

主题

61

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
 楼主| 发表于 2011-2-28 08:49:50 | 显示全部楼层

RE:关于halt模式电流求助

好的,这两个i/o是改不了了,我其他的I/O口都是设的是输入悬浮,知道是正常就行,谢谢版主,这个案子多亏你的指导!
回复 支持 反对

使用道具 举报

134

主题

4489

回帖

239

蝴蝶豆

版主

最后登录
2020-12-9
发表于 2011-2-28 09:48:32 | 显示全部楼层

RE:关于halt模式电流求助

不客气。
回复 支持 反对

使用道具 举报

关于 意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
13245底部标题123相同标题
12底部标题123相同标题
33333底部标题123相同序号
3435底部标题-无链接
关注我们
st-img 微信公众号
st-img 手机版