|
各位大佬好,最近在做一個stm8s驅(qū)動燈板的項目,用到了鋰電池,可以進行充電。但在測試階段發(fā)現(xiàn)電池掉電特別快,17h掉了0.6V,而驅(qū)動燈板至少需要2.7V,根本無法滿足需求。所以加了一個進入停機模式的代碼,可是發(fā)現(xiàn)沒有得到改善。
今天測試了一下待機電流,發(fā)現(xiàn)竟然有6.5mA這么高!難怪根本存不住電,實在是太離譜了。
我用的是stm8s001,因為涉及到swim燒寫口與IO口復(fù)用的問題,所以在main()里執(zhí)行其他函數(shù)之前加了一句
Delay(1000); //延時
方便進行燒錄程序,因為在測試階段所以這句代碼也沒有刪掉。運用萬用表測試時發(fā)現(xiàn),初始上電,電流1mA,延時結(jié)束后初始化IO口初始化一堆函數(shù)后就變成了6.5mA。在關(guān)閉led燈板執(zhí)行停機代碼后,待機電流也是1mA,但很快也是經(jīng)過幾秒(推測是過了延時)就又變成了6.5mA。
查詢了網(wǎng)上相關(guān)資料也沒有找到合適的解決方法,百思不得其解,不知道到底是哪里出了問題,懇請各位大佬指教!
單片機源程序如下:
- //***************主函數(shù)**********************//
- void main(void)
- {
- Delay(5000);
- ///*上電復(fù)位后延時5s,預(yù)約swim燒寫時間,否則會鎖死*///
- _asm("sim"); //關(guān)總中斷
- Res_Ctrl(); //復(fù)位
- GPIO_init();//IO配置
- SysClkInit();//時鐘配置
- EXTI_Init();//外部中斷配置
- _asm("rim"); //開總中斷
- while(1)
- {
- }
- }
復(fù)制代碼 |
|