背景:最近项目在测试MCU在Run mode,8Mhz的电流消耗。规格书为:,即开启所有外设功耗:5.9mA,关闭所有外设时钟为:3.7mA.
硬件连接:MCU为STM32F105VCT6,单片机最小系统模块,万用表连接电源。
问题描述:
主函数什么都没有,也没有其他的工程,如下:
int main(void)
{
while(1)
{
}
}
这种情况下,使用官方3.5的库,系统时钟已经设置好。测得电流为3.72mA.
那么问题是,如果我在main中随便增加一个函数,如下:
int yyynit(void)
{
return 0;
}
int main(void)
{
yyynit();
while(1)
{}
}
电流飙升到10.1mA。这是为什么呢?而且如果再加多一个函数。如下:
int main(void)
{
yyynit();
yyynit();
while(1)
{}
}
又变成3.72mA。不知道有没有大神碰到过这种情况,求解答。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
还有另外一个方面,对方使用STOP mode实现了低功耗,那可以研究一下stop mode时,具体的操作是怎样的,怎样对寄存器或者内存地址进行了设置,这些设置怎样影响外设的,可以仿做一下。
我没做过这方面的开发,能帮到的就到这里了
一周热门 更多>