精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

STM32單片機裸機:實現多任務設計實現

STM32嵌入式開發 ? 來源:STM32嵌入式開發 ? 2023-11-21 15:02 ? 次閱讀

問題

單片機開發過程中,隨著任務的增多,完全等待一個任務完成后,再去執行下一個任務的弊端越發明顯。

wKgZomVcViSAOO1TAAAT-Wquh3E708.jpg

在while(1)循環中實現LED 周期閃爍,提示系統正常運行。

代碼實例:

wKgZomVcViSAPAWxAAANnsgslN4356.jpg

采用時間分割思想,去處理不同的任務,每次執行1ms,到500次時,執行相應功能。

代碼

定義結構體:

Delay:時間片執行時長;

Period:任務執行周期。

wKgaomVcViSAbGFiAAAkC1NSq34161.jpg

添加(創建)任務:

wKgZomVcViSAd9bAAAA2AF3cbEA747.jpg

刪除任務:

wKgaomVcViSAB-dHAAAfA0Nwd90832.jpg

更改任務:

wKgaomVcViSAFlZpAAAoGitM1MU455.jpg

執行調度器:

wKgZomVcViWAJW4vAABG1g6gL7k638.jpg

定時器查詢時間片:

wKgaomVcViWAcIbvAAAVng7vT7I989.jpg

測試

封裝好了必要的函數之后,接下來學習如何使用,很簡單,首先創建幾個任務,創建了2個任務,兩個任務分別是task01,“時間片”是50ms(自己根據需要訂),任務周期是500ms,task02,“時間片”是10ms(自己根據需要訂),任務周期是1000ms:

wKgaomVcViWAYK6EAAAdOzb0Smk922.jpg

在systick(或者其他定時器)中調用,關于Systick的使用:STM32實例-SysTick實現2個LED流水燈效果。

wKgZomVcViWAEZtuAAAO9GsT-l0599.jpg

最后只需要在while中調用調度器就OK了(類似于LVGL的設計思路),根據我們的設計,兩個任務,一個是500ms打印“task01 test”,另一個1000ms打印“task02 test”。

wKgZomVcViWAVdcaAAD1aUd0qds467.jpg







審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • LED閃爍
    +關注

    關注

    0

    文章

    29

    瀏覽量

    9758
  • STM32單片機
    +關注

    關注

    58

    文章

    548

    瀏覽量

    58399
  • 裸機
    +關注

    關注

    0

    文章

    38

    瀏覽量

    6257

原文標題:STM32單片機裸機:實現多任務

文章出處:【微信號:c-stm32,微信公眾號:STM32嵌入式開發】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    FreeRTOS多任務系統的相關資料推薦

    目錄單片機各編程系統特點1、裸機系統(1)輪詢系統(2)前后臺系統2、多任務系統單片機各編程系統特點單片機編程中有
    發表于 01-13 07:51

    時間片輪詢+狀態實現裸機多任務相關資料分享

    時間片+狀態實現裸機多任務注:上述偽多任務是按個人理解命名的,實際上在裸機中跑的還是單線程,
    發表于 01-17 06:14

    stm32F4系列單片機如何利用一個定時器和二行代碼實現多任務的運行?

    stm32F4系列單片機如何利用一個定時器和二行代碼實現多任務的運行?
    發表于 01-19 07:37

    介紹一種嵌入式裸機多任務切換方法

    一種嵌入式裸機多任務切換方法有時候為了實現一些簡單的、對實時性要求不高的任務,采用操作系統不僅增加了程序的復雜性,對低性能單片機的資源占用也
    發表于 02-28 13:27

    采用Protothread實現實時多任務系統

    采用Protothread實現實時多任務系統 在許多系統資源非常緊張的單片機應用中,使用實時操作系統進行任務調度來實現實時
    發表于 03-29 15:10 ?1390次閱讀
    采用Protothread<b class='flag-5'>實現</b>實時<b class='flag-5'>多任務</b>系統

    51單片機多任務機制的實現策略研究

    從操作系統實現多任務機制的原理入手,分析了51單片機實現多任務機制的基本條件,論述了5l單片機
    發表于 09-19 17:26 ?159次下載
    51<b class='flag-5'>單片機</b><b class='flag-5'>多任務</b>機制的<b class='flag-5'>實現</b>策略研究

    單片機系統多任務實現方法

    考慮到成本等因素,大多數單片機系統的開發還是基于處理器直接編寫,但開發者經常面臨同時處理多個任務的要求,提出了一種單片機多任務程序設計的方法
    發表于 11-21 16:47 ?750次下載

    51單片機多任務操作系統的原理與實現

    51單片機多任務操作系統的原理與實現,在51單片機上模擬操作系統
    發表于 02-28 15:09 ?16次下載

    如何使用51單片機實現多任務機制的策略詳細資料說明

    51單片機在微型智能控制系統中應用很廣,隨著人們對控制系統的要求不斷提高,51單片機的功能局限越發明顯。特別是51系列單片機不具有實時多任務支持功能,大大限制其在控制系統中的進一步發展
    發表于 07-17 17:38 ?6次下載
    如何使用51<b class='flag-5'>單片機</b><b class='flag-5'>實現</b><b class='flag-5'>多任務</b>機制的策略詳細資料說明

    單片機多任務處理方案

    單片機要執行多任務,可以使用中斷的方式,也可以使用操作系統,目前有一些適用于單片機的小型操作系統。
    的頭像 發表于 09-13 15:45 ?9257次閱讀

    使用單片機實現道路交通燈多任務控制系統的課件說明

     RTX-51是運行于8051單片機環境中的實時多任務操作系統(RTOS),其常用于處理復雜的多任務控制系統。8051單片機支持典型的RTX-51 Tiny和RTX-51 Full實時
    發表于 04-16 17:31 ?7次下載
    使用<b class='flag-5'>單片機</b><b class='flag-5'>實現</b>道路交通燈<b class='flag-5'>多任務</b>控制系統的課件說明

    實時多任務機制在低功耗單片機系統中的最小實現

    簡要介紹低功耗單片機系統的設計原則。詳細闡述了實時多任務程序結構的特點以及在低功耗單片機中的一種最小實現方法。結合低功耗熱能測量系統實例介紹其具體
    發表于 06-24 10:26 ?27次下載

    單片機多任務事件驅動C源碼

    單片機多任務事件驅動C源碼
    發表于 11-29 10:06 ?26次下載
    <b class='flag-5'>單片機</b><b class='flag-5'>多任務</b>事件驅動C源碼

    時間片輪詢+狀態實現裸機多任務

    時間片+狀態實現裸機多任務注:上述偽多任務是按個人理解命名的,實際上在裸機中跑的還是單線程,
    發表于 01-18 10:37 ?32次下載
    時間片輪詢+狀態<b class='flag-5'>機</b><b class='flag-5'>實現</b><b class='flag-5'>裸機</b><b class='flag-5'>多任務</b>

    單片機裸機實現隊列功能的方案

    單片機裸機實現隊列功能的方案
    的頭像 發表于 10-17 14:34 ?447次閱讀