最近搞一个低功耗的项目,用到STM8L152R8的芯片。
首先硬件方面简单介绍一下:
硬件完全小白,没搞过,这次是从网上花了500块买的别人硬件Demo,特别简单支持超宽低温段码lcd屏带电量显示QYT12429液晶显示和SHT20温湿度传感器,BH1750光照度传感器,以及RT9193-33G降压芯片。
后来几天在这个硬件Demo基础上又花500块找人给重新更新了一次,增加了LORA模块电路(433无线传输模块)和几个三极管的电路,用来控制低功耗状态下给传感器断电。
软件方面简单介绍一下:
在之前的开源SHT20传感器采集软件基础上,增加了lora无线串口AT发送指令,整体代码简单,新手水准。
结果分析:
最终在Active-halt模式下,待机功耗降低到430ua,太高了,看别人的都讲到十几ua。
经过测试发现裸芯片情况下,用下面这段程序代码直接跑。
int main( void )
{
PWR_FastWakeUpCmd(ENABLE); //快速唤醒使能
//所有IO输出低电平
GPIO_Init(GPIOA, GPIO_Pin_All, GPIO_Mode_Out_PP_Low_Slow);
GPIO_Init(GPIOB, GPIO_Pin_All, GPIO_Mode_Out_PP_Low_Slow);
GPIO_Init(GPIOC, GPIO_Pin_All, GPIO_Mode_Out_PP_Low_Slow);
GPIO_Init(GPIOD, GPIO_Pin_All, GPIO_Mode_Out_PP_Low_Slow);
GPIO_Init(GPIOE, GPIO_Pin_All, GPIO_Mode_Out_PP_Low_Slow);