99久久全国免费观看_国产一区二区三区四区五区VM_久久www人成免费看片中文_国产高清在线a视频大全_深夜福利www_日韩一级成人av

STM32CUBE軟件開發低功耗設備

ST的低功耗模式沒有NXP那么多種,大類有5類:1、睡眠模式,2、低功耗運行模式3、低功耗睡眠模式4、停止模式 5、待機模式我看了一下,1、2、3類功耗偏高,不適合目前使用,第5類等于喚醒芯片復位,SRAM數據都不能保存,IO狀態也不能保證,這個也用不了,適合這個項目的就是第4、停止模式,手冊上標注停止模式最低0.8uA,這個比一般的MCU低多了,完全夠用了,如下圖:

(2)低功耗調試經驗常規經驗(這個是參考前輩的經驗):

1、外設時鐘必須切換為內部時鐘;

2、不用的外設全部關閉,要用再開就是了;

3、浮空引腳必須配置為下拉;這個直接在STM32cube軟件里面配置就行了

4、硬件上的上拉、下拉電阻切記不能隨便加,使用到的外圍芯片也要注意功耗問題;外圍的功能供電須加mos管做開關。

5、對進入低功耗有好幾種情況可以選擇(睡眠、停機、待機),不同模式喚醒機制略有不同;6、你需要一個測試過的低功耗的DEMO,測試硬件上的問題或移植到你的工程,這是最靠譜的;這次是第一次使用ST的L系列,直接參考手冊做的電路,焊接的時候,專門留了一塊板子,外圍功能器件不焊接,只焊接MCU和芯片周圍的器件直接做了一塊最小系統板用了調試功耗,這個是我的習慣,一般做一個新項目,新MCU的話,會焊一塊最基本的板子,用來調功耗。然后找到官方的低功耗例程,來驗證,這次開始功耗特別大,燒官方的例程也有300多uA,后來檢查電路,發現BOOT0的電平可選擇電阻選擇有問題,太小了,換了一個10M之后,功耗立馬降到3uA,這個基本上夠用了,待機電流也不是越低越好,現在的一次性鋰亞電池,做的容量都很大,待機電流太小,如果采集周期也很長的話,容易照成電池鈍化,也會影響使用周期。

(3)STM32CUBE使用經驗分享1. 新建一個工程第一步肯定是下載軟件,這個就不多說了,找官方下載就行了,對應的L系列還需要安裝一個軟件包,之前用了F429,這次試用L053又下載了一個安裝包。雙擊打開這個軟件 

打開之后選擇新建一個工程:

等待軟件加載一些功能之后,選擇你的MCU

找到你的MCU之后,雙擊它就行了

就出現了我們可以配置的界面,下面就是我們選擇的MCU:

具體的使用大家慢慢摸索,哈哈。使用這個STM32cube軟件,也沒有像官方說的那樣,新手也能用好,我感覺完全的新手估計夠嗆,起碼時鐘樹就很難理解,之前搞飛思卡爾,也就是現在的NXP的,都是看寄存器手冊然后對照例程學習,想一步到位估計夠嗆。有些經驗的,使用這個軟件配置初始化還比較合適,各項功能很清晰。

2. 配置我們需要的IO口和功能按照具體的項目配置IO口和功能,下圖是我最近這個項目用到的,3個串口,一個ADC監視電池電壓,5個按鍵中斷,然后還有一些IO控制,內部的EEPROM,RTC定時器和硬件看門狗。

本來也可以用內部HSI,我擔心頻率不那么精準,串口通訊波特率可能會有些問題,還是加了一個外部8M晶振,配置一下時鐘樹。

配置完之后生成代碼,選著保存的目錄等等

還有一個自動配置未使用的IO 為輸入狀態

3. 在低功耗前提下各個功能程序處理經驗在低功耗前提下,使用各個功能,就要做到,用到打開,用完立即關閉。以采集電池電量為例,

如下

u16 Get_VBat(void)
{
        float  temp;
        u16 BATTER_VALUE,VREFINT_CAL;
        u16 Ref_Vol;
        u16 Vdc;
       
        MX_ADC_Init();  //重新初始化
       
        BATTER_VALUE = GET_ADC(ADC_CHANNEL_0);
        Ref_Vol = GET_ADC(ADC_CHANNEL_VREFINT);
               
        printf("電池:%d\r\n",BATTER_VALUE);
        printf("基準:%d\r\n",Ref_Vol);
       
        BATTER_VALUE = 2*BATTER_VALUE;
       
        temp=((float)BATTER_VALUE/Ref_Vol)*1.24;
        Vdc = (u16)(temp*1000);
        printf("Vdc=%u\r\n",Vdc);
       
        HAL_ADC_DeInit(&hadc);    //關閉ADC采集
        return Vdc;
}

使用ADC重新初始化,用完之后馬上關閉。

4. 低功耗實現命令低功耗命令實際就一句話就行了,再加上喚醒配置和暫停系統時鐘中斷。STM32系統自動就把時鐘重新選擇了,不需要我們自己弄,這個比較方便,之前做NXP的每一項低功耗對時鐘都有要求,進之前要自己切換時鐘才行,不然可能會報錯。在停止模式下,VCORE 域中的所有時鐘都會停止,PLL、MSI、HSI16 和 HSE RC 振蕩器也被禁止。內部 SRAM 和寄存器內容將保留。具體函數如下:               

HAL_SuspendTick();     //掛起(暫停)系統時鐘中斷             

  HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON,                                    PWR_STOPENTRY_WFI);  //0.75ma  WFI任意中斷喚醒  WFE喚醒事件             

  HAL_ResumeTick();           // /*喚醒之后恢復系統時鐘中斷 */STOP模式LPUART1和任意的外部中斷,RTC中斷都可以喚醒,喚醒之后需要重新初始化系統時鐘,才能保證你的功能正常運行。總結:整體來說STM32L053的體驗還不錯,功耗也很低,整體這個項目畫板子焊接調試2周多的時間就基本上搞定,目前搞了幾臺設備到現場去測試了,大功能沒啥問題,哈哈。這個項目使用的功能不多,主要就是串口和低功耗,然后使用了內部的EEPROM保存一些關鍵參數,希望能給大家一點有用的幫助。 

聲明:本內容為作者獨立觀點,不代表電子星球立場。未經允許不得轉載。授權事宜與稿件投訴,請聯系:editor@netbroad.com
覺得內容不錯的朋友,別忘了一鍵三連哦!
贊 4
收藏 3
關注 211
成為作者 賺取收益
全部留言
0/200
成為第一個和作者交流的人吧
主站蜘蛛池模板: 一级免费看片 | 女人张开腿让男人桶爽 | 亚洲资源网 | 精品久久久一区 | 女女女女bbbb毛片免费视频 | 国产性网| 麻豆嫩芽忘忧草一区二区三区 | 极品嫩模被黑人20厘米 | 国产伦一区二区三区色一情 | 人妻丰满熟妇AV无码区乱 | 国内自产拍自拍A免费毛片 无码人妻精品一区二区三区久久 | 最新免费av| 亚洲AⅤ人片在线观看无 | 精品国产人妻一区二区三区 | 久久久无码精品亚洲欧美 | 青青草最新视频 | 欧美一区自拍 | 国产av刺激无码 | 69精产国品一二三产品价格 | 黄色大片一级片 | 精品剧情V国产在线观看 | 欧美精品在线不卡 | 亚洲精品久久久久58 | 久久久久人妻一区精品 | 色网址在线观看 | 在线视频你懂 | 熟妇性hqmaturetube| 国产观看视频 | 啪啪网址大全 | 国产成人亚洲第一 | 网红主播大秀福利视频日韩精品 | 97亚洲精华液 | 真人二十三式性视频(动) | 18禁免费观看网站 | 成人亚洲A片V一区二区三区色欲 | 久久国产精品大桥未久av | 亚洲精品久久久久久久久久 | 精品乱码卡1卡2卡3免费开放 | www.亚洲精品 | 黄色成人av| 日本一二区在线观看 |