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

查看: 7148|回复: 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 =&gt;0.01UF电容到地
PD3=&gt;接红外接收头,由于外部没上拉电阻,我只能将PD3设为内部输入上拉
PB5=&gt;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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版