STM32L151RDT6,单片机最小系统,主函数仅打开时钟,进入停止(stop)模式后功耗过高达600uA,请大家帮忙

2019-07-21 00:58发布

晶振使用外部晶振,网上搜了方法,比如:将所有IO口均设置成浮空输入、推挽上拉/下拉输出,此方法试过不行,代码如下,麻烦大家帮忙找下原因
int main (void)
{

        u16 Time_10ms = 0;
        GPIO_InitTypeDef GPIO_InitStructure;

         
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);  //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
        Time2_Init(SYSTEM_CYCLE);
       
        while(1)
        {
                Time_10ms ++;
               
                if(Time_10ms >= 200)
                {
                        Sys_Stop();
                }
               

                // 保证 Time_5ms 不会溢出
                if(Time_10ms == 6500000)
                        Time_10ms = 0;

                while((TIM2->SR&0X0001) == 0);
                TIM2->SR&=~(1<<0);
        }
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
9条回答
昨日的浪子
2019-07-21 13:47
随风飘动 发表于 2018-4-26 08:23
在线调试,看stop模式之后的语句会不会执行了,Sys_Stop();函数贴一下

单步仿真过,进入STOP模式后,后面的语句就不能执行了
void Sys_Stop(void)
{
//        debug(" system stop ");

        PWR_UltraLowPowerCmd(ENABLE);
        PWR_FastWakeUpCmd(ENABLE);
        PWR_EnterSTOPMode(PWR_Regulator_LowPower, PWR_STOPEntry_WFI);
       
        NVIC_SystemReset();
}

一周热门 更多>