欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: stm8s單片機停機模式無法降低電流? [打印本頁]

作者: Arouw    時間: 2022-11-23 18:28
標題: stm8s單片機停機模式無法降低電流?
各位大佬好,最近在做一個stm8s驅(qū)動燈板的項目,用到了鋰電池,可以進行充電。但在測試階段發(fā)現(xiàn)電池掉電特別快,17h掉了0.6V,而驅(qū)動燈板至少需要2.7V,根本無法滿足需求。所以加了一個進入停機模式的代碼,可是發(fā)現(xiàn)沒有得到改善。
今天測試了一下待機電流,發(fā)現(xiàn)竟然有6.5mA這么高!難怪根本存不住電,實在是太離譜了。
我用的是stm8s001,因為涉及到swim燒寫口與IO口復用的問題,所以在main()里執(zhí)行其他函數(shù)之前加了一句
Delay(1000);          //延時

方便進行燒錄程序,因為在測試階段所以這句代碼也沒有刪掉。運用萬用表測試時發(fā)現(xiàn),初始上電,電流1mA,延時結(jié)束后初始化IO口初始化一堆函數(shù)后就變成了6.5mA。在關閉led燈板執(zhí)行停機代碼后,待機電流也是1mA,但很快也是經(jīng)過幾秒(推測是過了延時)就又變成了6.5mA。

查詢了網(wǎng)上相關資料也沒有找到合適的解決方法,百思不得其解,不知道到底是哪里出了問題,懇請各位大佬指教!

單片機源程序如下:
  1. //***************主函數(shù)**********************//
  2.         void main(void)
  3. {
  4.                 Delay(5000);
  5.                 ///*上電復位后延時5s,預約swim燒寫時間,否則會鎖死*///

  6.                 _asm("sim");        //關總中斷
  7.                 Res_Ctrl(); //復位
  8.                 GPIO_init();//IO配置
  9.                 SysClkInit();//時鐘配置
  10.                 EXTI_Init();//外部中斷配置
  11.                 _asm("rim");        //開總中斷
  12.                 while(1)
  13.                 {
  14.                 }
  15.         }
復制代碼

作者: Arouw    時間: 2022-11-23 18:32

  1.         /***********************************************************
  2.         函 數(shù) 名:        Key1_Working & Key2_Working
  3.         函數(shù)描述:  開機控制按鍵配置
  4.         備    注:  1、KEY1按鍵情況執(zhí)行:
  5.                                         1)開機,高檔亮度;
  6.                                         2)中檔亮度;
  7.                                         3)爆閃SOS;
  8.                                         4)關機;
  9.         本函數(shù)在外部中斷中執(zhí)行,識別到按鍵按下才會執(zhí)行相關擋位        。
  10.         ***********************************************************/
  11.         void Key1_Working(void)
  12.         {
  13.                 switch(Key1_Flag)
  14.                         {       
  15.                                 case 1://開機,高檔亮度;
  16.                                         LED_PWM(1);
  17.                                         Flag=1;        //開關機標志位為1
  18.                                 break;
  19.                                
  20.                                 case 2://中檔亮度;
  21.                                         LED_PWM(2);
  22.                                 break;
  23.                                
  24.                                 case 3://爆閃SOS;                       
  25.                                         LED_PWM(3);
  26.                                 break;
  27.                                
  28.                                 case 4:
  29.                                         LED_PWM(4);
  30.                                                 Key1_Flag = 0;        //按鍵計數(shù)為0
  31.                                                 Flag = 0 ;        //開關機標志位為0
  32.                                                 _asm("HALT");
  33.                                 break;
  34.                                
  35.                         default: break;       
  36.                         }
  37.         }
復制代碼

作者: Arouw    時間: 2022-11-24 08:38
求各位大佬指點一下,剛剛我又看了一下,17h掉電了0.17V,雖然已經(jīng)降低了但是還是無法滿足正常使用的需求,實在不知道該怎么改了。
作者: Arouw    時間: 2022-11-24 14:34
各位好,這個問題已經(jīng)解決了。原來需要將_asm("HALT");這句加在main函數(shù)里,我選擇了在其他函數(shù)初始化之后進入停機模式,這樣待機電流可以降低至0.1mA甚至0.03mA。然后我又加了一句FLASH_CR1 |= 0x80; 這樣FLASH就可以在停機模式下不掉電了。




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1