娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2025年06月13日(星期五)

2019年06月13日 | 關于STM32的CPU的使用率~裸機不帶系統

發布者:bluepion 來源: eefocus關鍵字:STM32  CPU  使用率  裸機 手機看文章 掃描二維碼
隨時隨地手機看文章

1. 如果你不跑操作系統,CPU肯定一直都是100%使用的,哪怕你里面是延時等待,CPU也是一直在執行空語句nop,因為STM32里面是有一個CPU。


2.對于stm32總是百分百。只是有多少時間空閑,多少時間干活!


3.


樓主的意思是實際CPU用來干正事的時間,在整個時間里的比例,打個比方,如果工作50mS,再等待200mS,完成一個大循環,那么CPU的使用率就是20%。


如果樓主的程序是以大循環方式做的,那么在進入等待前把一個IO口拉低,等待結束,開始工作,把IO口拉高,那么占空比就是使用率,當然這是在各種中斷不是很頻繁,而且中斷里處理的事情很少的情況下有用,我經常這么估算MCU的速率富余度的,然后據此設置一個合適的MCU工作頻率,降低不僅僅是CPU的功耗那一點點電能,如果是線性降壓,整個功耗下降很多的,發熱就低了,而且工作頻率下降,CPU穩定性也會增強。


4.首先,我們知道Cortex有幾種內核的低功耗工作狀態,Sleep, Stop, Standby

這里我用到的是Sleep狀態,即設計程序時,當程序的任務處理完后,使單片機進入WFE或WFI的Sleep狀態:


使用操作系統時,直接在空閑任務中添加__WFI();或__WFE();即可

裸機程序時,設計程序結構為大main循環為中斷或事件觸發的形式,即main循環等待隊列中的任務,當隊列為空時,執行__WFI();或__WFE();。添加隊列的操作在串口、按鍵、計時器中斷中進行,等等。


然后,我們采用的是外設的低功耗狀態,即STM32的外設可以在內核進入低功耗狀態后,手動或自動停止外設的時鐘,當退出低功耗狀態時手動或自動恢復外設始終。

由于我這方法是在F4上面實現的,采用F1實現時,會顯得臃腫一些,大家理解啥意思就行了,采用F4時會方便很多。

這是F1的外設低功耗特性,可見,外設在內核進入低功耗狀態時,外設時鐘只能手動打開和關閉。


這是F4的外設低功耗特性,可見,外設在內核進入低功耗狀態時,外設時鐘可以自動關閉。



在使用F4時,我們就可以采用如TIM6和TIM7兩個計時器

配置如下

void tim6_init(void)

{

        TIM_TimeBaseInitTypeDef TIM_InitStructure;


        RCC_APB1PeriphClockCmd      (RCC_APB1Periph_TIM6, ENABLE );

        RCC_APB1PeriphClockLPModeCmd(RCC_APB1Periph_TIM6, DISABLE);

        

        TIM_DeInit(TIM6);

        TIM_InitStructure.TIM_Prescaler         = 180;

        TIM_InitStructure.TIM_CounterMode       = TIM_CounterMode_Up;

        TIM_InitStructure.TIM_Period            = 65535;

        TIM_InitStructure.TIM_ClockDivision     = TIM_CKD_DIV1;

        TIM_InitStructure.TIM_RepetitionCounter = 0;

        TIM_TimeBaseInit(TIM6, &TIM_InitStructure);

        TIM_SetCounter(TIM6, 0);

        TIM_ITConfig(TIM6, TIM_IT_Update, DISABLE);

        TIM_Cmd(TIM6, ENABLE);

}

void tim7_init(void)

{

        TIM_TimeBaseInitTypeDef TIM_InitStructure;

        NVIC_InitTypeDef   NVIC_InitStructure;

        

        RCC_APB2PeriphClockCmd      (RCC_APB2Periph_SYSCFG, ENABLE);

        RCC_APB1PeriphClockCmd      (RCC_APB1Periph_TIM7,   ENABLE);

        RCC_APB1PeriphClockLPModeCmd(RCC_APB1Periph_TIM7,   ENABLE);

        

        TIM_DeInit(TIM7);

        TIM_InitStructure.TIM_Prescaler         = 180;

        TIM_InitStructure.TIM_CounterMode       = TIM_CounterMode_Up;

        TIM_InitStructure.TIM_Period            = 65535;

        TIM_InitStructure.TIM_ClockDivision     = TIM_CKD_DIV1;

        TIM_InitStructure.TIM_RepetitionCounter = 0;

        TIM_TimeBaseInit(TIM7, &TIM_InitStructure);

        TIM_SetCounter(TIM7, 0);

        TIM_ITConfig(TIM7, TIM_IT_Update, ENABLE);

        

        NVIC_InitStructure.NVIC_IRQChannel = TIM7_IRQn;

        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x03;

        NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x03;

        NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;

        NVIC_Init(&NVIC_InitStructure);

        

        TIM_Cmd(TIM7, ENABLE);

}




TIM7中斷代碼如下:

void TIM7_IRQHandler(void)

{

        TIM7->SR           = ~TIM_IT_Update;

        CPU_TICK_USAGE     = TIM6->CNT;

        TIM6->CNT          = 0;

}




計算CPU使用率(%)如下:

CPULoad   = (float)CPU_TICK_USAGE*100.0f/65535.0f




當采用F1時,那就需要在每個中斷的入口處,手動添加代碼,使能TIM6時鐘

并在每個__WFE();或__WFI();前手動添加代碼,關閉TIM6時鐘

在每個__WFE();或__WFI();后手動添加代碼,使能TIM6時鐘

當然,采用F1時,不用__WFE();或__WFI();而只用while循環也是一樣的。




5.


圍觀,個人覺得既然是裸機,就沒必要考慮CPU的使用率了


6.

dwiller_ARM 發表于 2014-2-20 13:58

圍觀,個人覺得既然是裸機,就沒必要考慮CPU的使用率了


在一般的應用中還是可以采用的,如現在我做的變頻器項目,可以通過查看CPU的使用率考慮算法的復雜性,并根據CPU使用率確定最高的采樣頻率和PWM周期,同時確定CPU主頻選取的是否合適。按我的感覺是,CPU使用率為75~85%時最合適。


關鍵字:STM32  CPU  使用率  裸機 引用地址:關于STM32的CPU的使用率~裸機不帶系統

上一篇:stm32使用MDK開發中的一些常見問題
下一篇:最后一頁

推薦閱讀

? ? 經在蘋果官網確認,Apple Store王府井直營店將于6月24日起閉店。  蘋果稱,此舉旨在帶來更好的體驗,閉店期間將進行店面升級。資料顯示,Apple王府井店位于北京市東城區王府井大街138號北京apm,2012年10月20日開始營業。  外媒9to5mac整理后發現,一周前,Apple Palo Alto(加州帕羅奧圖市)閉店升級,倫敦的Apple Covent Garden將于6月...
目前的平板電腦市場,iPad幾乎是無敵的存在,雖說不少廠商曾推出過搭載Android系統的平板電腦,但是由于性能的限制,始終無法與iPad相匹敵。近日一款三星的平板電腦在GeekBench跑分平臺曝光,這款平板在性能方面表現不俗,或許會成為iPad的唯一對手。SM-T865跑分曝光具體來看,這款代號為SM-T865的三星平板配備驍龍855平臺,輔以6GB運存,這在Android平板...
近年來,在人口紅利逐步消退及科技進步的背景下,中國制造業企業自動化升級、機器換人的需求逐年攀升。盡管國產機器人市場需求突飛猛進,但國內市場一直被外來品牌壟斷。不可否認,中國本土機器人企業起步晚,在產品功能、精度和穩定性等方面還在追趕國際高端水平。早期的中國工業機器人市場被"四大家族"(ABB、發那科、KUKA、安川)占領,其中有兩個關...
6 月 11 日,Apple Search Ads 的服務條款《Apple 廣告服務服務條款》進行了更新,其中主要增加了《附件 6:針對中國大陸的額外條款》,且新版服務條款將于 2021 年 6 月 22 日生效。

史海拾趣

小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 怀宁县| 安徽省| 洱源县| 武清区| 南阳市| 越西县| 礼泉县| 崇仁县| 广河县| 胶州市| 淮滨县| 罗源县| 正蓝旗| 湘西| 宜城市| 平江县| 五峰| 丹江口市| 晋州市| 崇仁县| 无为县| 娱乐| 海宁市| 汽车| 普洱| 长乐市| 天台县| 冷水江市| 寻乌县| 潜江市| 兴文县| 花垣县| 鹰潭市| 丰镇市| 洪洞县| 缙云县| 阿克苏市| 大城县| 平和县| 利辛县| 准格尔旗|