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条回答
北极圈的黄昏
1楼-- · 2019-07-21 03:53
 精彩回答 2  元偷偷看……
随风飘动
2楼-- · 2019-07-21 06:46
本帖最后由 随风飘动 于 2018-4-26 08:36 编辑

在线调试,看stop模式之后的语句会不会执行了,Sys_Stop();函数贴一下
昨日的浪子
3楼-- · 2019-07-21 11:53
 精彩回答 2  元偷偷看……
昨日的浪子
4楼-- · 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();
}
关山难越
5楼-- · 2019-07-21 18:45
本帖最后由 关山难越 于 2018-4-26 10:18 编辑

QQ邮箱发来,发你一段L15X各种模式下(休眠,停止)的测试代码
昨日的浪子
6楼-- · 2019-07-21 23:38
 精彩回答 2  元偷偷看……

一周热门 更多>