STM32F103C8T6 低功耗休眠模式不起作用

2019-03-23 14:38发布

我做一款产品,需要低功耗,芯片是STM32F103C8T6.板子上有一个STM32F103C8T6芯片,一个蓝牙模块,10个按键,一个指示灯。
用CR2032供电。
不加低功耗功能时,一天就把电耗完了。
后来加了低功耗睡眠模式,程序如下:

int main(void)
{
        u8 **;
        long int i;
        char flag=0;
        Stm32_Clock_Init(9);                    //72MHz
    //IWDG_Init(6,800);               //看门狗初始化,256分频,800计数,复位时间5s
        CPU_Init();                     //CPU初始化               
        VAR_Init();                                                //变量初始化
        Timer_Init();                                        //定时器初始化
        //usart1_init(115200);                        //串口1初始化
        usart1_init(9600);               
        usart2_init(115200);                        //串口2初始化
        InitKeyboard();

555.jpg





可是试验了一下,还是一天就把电耗完了。高手给看看,哪里有问题?谢谢!

此帖出自小平头技术问答  

9条回答
DELAN1234567
1楼 · 2019-03-25 00:24.采纳回答
以下是用CC2640r2做产品的电流:

/*工作电流 按松下CR2032电池 容量为220mAH
工作状态     最大电流      最大时间
连接中       7mA(0DBm)    5秒
连接好        1.2mA         10秒
无连接空闲    1.2mA         220mAH/1.2mA=183小时    (有键一直按下的情况)   
睡眠          0.1uA         220mAH/0.1uA=2200000小时=251年
*/
懒猫爱飞
2楼-- · 2019-03-23 19:49



103的低功耗没有做过,可以从以下几个地方入手
1) 睡觉前把对应的端口的高低电平设置的与外围电路一致,比如外围是高,你也把对应的IO设置成高
2) 休眠前,把不用的外围手工关掉,比如串口,ADC,I2C等,唤醒以后再重新初始化
3) 先用一下最小系统进入休眠状态,测试一下功耗是多少
4) 然后算一下外围的功耗是多少
5) 可以把比较耗电的外围加上电源开关,在不用的时候,关掉电源

damiaa
3楼-- · 2019-03-23 23:15



IO口省电很重要。记得N年前用PIC16LC62做气表。那要到10UA。外围IO口不断的测。从几个毫安降到10UA。全都是从IO口折腾出来的。CPU本身可以到1~2个微安。其实你可以用STM32L0XX或者STM8LXX。 这个更好。而且内部带了EEPROM .外扩EEPROM想做低功耗就很难。

DELAN1234567
4楼-- · 2019-03-24 01:35
 精彩回答 2  元偷偷看……
chenbingjy
5楼-- · 2019-03-24 07:18


CR2032 电池放电电流不适合大于20MA,所以用STM32不太合适;应该是一个蓝牙IC搞定这个产品


那用什么电池好呢?推荐一款呗。
另,蓝牙IC没用过,可以编程吗?因为我还有按键和指示灯。谢谢!

DELAN1234567
6楼-- · 2019-03-24 11:36


那用什么电池好呢?推荐一款呗。
另,蓝牙IC没用过,可以编程吗?因为我还有按键和指示灯。谢谢!


我想你可能是要用蓝牙BLE,CC2640,nrf51822都可以搞定

chenbingjy
7楼-- · 2019-03-24 12:46
 精彩回答 2  元偷偷看……

一周热门 更多>