找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 17051|回复: 1
打印 上一主题 下一主题
收起左侧

终于我也可以对STM32低功耗进行总结

[复制链接]
跳转到指定楼层
楼主
ID:75263 发表于 2015-6-9 02:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
STM32F103R8和RC的停机模式的休眠电流还不一样,R8停机模式实测为11UA,RC停机模式实测为30uA,还以为又是我的程序哪里没做好呢,仔细看了PDF,这两个芯片PDF上标的值的确有区别,和我测的值差不多,那我就没有再深究的意义了!









结合下文的高手经验,反复摸索,

standby模式1.9uA,PWR_EnterSTOPMode(PWR_Regulator_LowPower,PWR_STOPEntry_WFI);
stop模式:11uA,PWR_EnterSTANDBYMode();

实验证明,将IO端口设成IPU/IPD/AIN/PPOUT=1/PPOUT=0/ODOUT=0,电流是基本相同的,最可怕的就是GPIO浮空,且电路上未外接上拉下拉,这样电流就会比较大。
原来以来PPOUT要是输出为0,就会浪费电流,其实只要不负载,电流和ODOUT=0时一样样的。
以下为部分代码
void MUC_SLEEP(void)
{
GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable,ENABLE);  //完全失能JTAG/SWD 不关电流也好像不影响
GPIO_PinRemapConfig( GPIO_Remap_PD01 , ENABLE);//晶振为GPIO 不关电流也好像不影响
RCC_LSEConfig(RCC_LSE_OFF);//关闭RTC  不关电流也好像也不影响

RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR,ENABLE);
ADC_CONFIG(DISABLE);
USART_DeInit(USART1);
USART_DeInit(USART2);
USART_DeInit(USART3);
USART_DeInit(UART5);
EXTI_INITIAL(ENABLE);//以下端口的设置最有影响

GPIO_PIN_INITIAL(GPIOA,GPIO_Pin_All,GPIO_Mode_AIN,0); //此处没做外部唤醒 仅用于测试 EXTI合理设置GPIO不影响电流
GPIO_PIN_INITIAL(GPIOB,GPIO_Pin_All,GPIO_Mode_AIN,0);
GPIO_PIN_INITIAL(GPIOC,GPIO_Pin_All,GPIO_Mode_AIN,0);
GPIO_PIN_INITIAL(GPIOD,GPIO_Pin_All,GPIO_Mode_AIN,0);
//PWR_EnterSTOPMode(PWR_Regulator_LowPower,PWR_STOPEntry_WFI);//STOP模式
PWR_EnterSTANDBYMode();//standby模式

}

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:216154 发表于 2017-6-30 16:54 | 只看该作者
你好,请问在进入standby模式之前避免GPIO处于浮空就可以减小功耗了对吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表