我做一款产品,需要低功耗,芯片是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();
可是试验了一下,还是一天就把电耗完了。高手给看看,哪里有问题?谢谢!
此帖出自小平头技术问答
103的低功耗没有做过,可以从以下几个地方入手
1) 睡觉前把对应的端口的高低电平设置的与外围电路一致,比如外围是高,你也把对应的IO设置成高
2) 休眠前,把不用的外围手工关掉,比如串口,ADC,I2C等,唤醒以后再重新初始化
3) 先用一下最小系统进入休眠状态,测试一下功耗是多少
4) 然后算一下外围的功耗是多少
5) 可以把比较耗电的外围加上电源开关,在不用的时候,关掉电源
一周热门 更多>