我做一款产品,需要低功耗,芯片是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();
可是试验了一下,还是一天就把电耗完了。高手给看看,哪里有问题?谢谢!
此帖出自小平头技术问答
/*工作电流 按松下CR2032电池 容量为220mAH
工作状态 最大电流 最大时间
连接中 7mA(0DBm) 5秒
连接好 1.2mA 10秒
无连接空闲 1.2mA 220mAH/1.2mA=183小时 (有键一直按下的情况)
睡眠 0.1uA 220mAH/0.1uA=2200000小时=251年
*/
103的低功耗没有做过,可以从以下几个地方入手
1) 睡觉前把对应的端口的高低电平设置的与外围电路一致,比如外围是高,你也把对应的IO设置成高
2) 休眠前,把不用的外围手工关掉,比如串口,ADC,I2C等,唤醒以后再重新初始化
3) 先用一下最小系统进入休眠状态,测试一下功耗是多少
4) 然后算一下外围的功耗是多少
5) 可以把比较耗电的外围加上电源开关,在不用的时候,关掉电源
IO口省电很重要。记得N年前用PIC16LC62做气表。那要到10UA。外围IO口不断的测。从几个毫安降到10UA。全都是从IO口折腾出来的。CPU本身可以到1~2个微安。其实你可以用STM32L0XX或者STM8LXX。 这个更好。而且内部带了EEPROM .外扩EEPROM想做低功耗就很难。
那用什么电池好呢?推荐一款呗。
另,蓝牙IC没用过,可以编程吗?因为我还有按键和指示灯。谢谢!
我想你可能是要用蓝牙BLE,CC2640,nrf51822都可以搞定
一周热门 更多>