0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

STM32單片機裸機:實現(xiàn)多任務(wù)設(shè)計實現(xiàn)

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

問題

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

wKgZomVcViSAOO1TAAAT-Wquh3E708.jpg

在while(1)循環(huán)中實現(xiàn)LED 周期閃爍,提示系統(tǒng)正常運行。

代碼實例:

wKgZomVcViSAPAWxAAANnsgslN4356.jpg

采用時間分割思想,去處理不同的任務(wù),每次執(zhí)行1ms,到500次時,執(zhí)行相應(yīng)功能。

代碼

定義結(jié)構(gòu)體:

Delay:時間片執(zhí)行時長;

Period:任務(wù)執(zhí)行周期。

wKgaomVcViSAbGFiAAAkC1NSq34161.jpg

添加(創(chuàng)建)任務(wù):

wKgZomVcViSAd9bAAAA2AF3cbEA747.jpg

刪除任務(wù):

wKgaomVcViSAB-dHAAAfA0Nwd90832.jpg

更改任務(wù):

wKgaomVcViSAFlZpAAAoGitM1MU455.jpg

執(zhí)行調(diào)度器:

wKgZomVcViWAJW4vAABG1g6gL7k638.jpg

定時器查詢時間片:

wKgaomVcViWAcIbvAAAVng7vT7I989.jpg

測試

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

wKgaomVcViWAYK6EAAAdOzb0Smk922.jpg

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

wKgZomVcViWAEZtuAAAO9GsT-l0599.jpg

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

wKgZomVcViWAVdcaAAD1aUd0qds467.jpg







審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • LED閃爍
    +關(guān)注

    關(guān)注

    0

    文章

    29

    瀏覽量

    9822
  • STM32單片機
    +關(guān)注

    關(guān)注

    59

    文章

    549

    瀏覽量

    58717
  • 裸機
    +關(guān)注

    關(guān)注

    0

    文章

    39

    瀏覽量

    6375

原文標(biāo)題:STM32單片機裸機:實現(xiàn)多任務(wù)

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

收藏 人收藏

    評論

    相關(guān)推薦

    FreeRTOS多任務(wù)系統(tǒng)的相關(guān)資料推薦

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

    時間片輪詢+狀態(tài)實現(xiàn)裸機多任務(wù)相關(guān)資料分享

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

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

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

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

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

    采用Protothread實現(xiàn)實時多任務(wù)系統(tǒng)

    采用Protothread實現(xiàn)實時多任務(wù)系統(tǒng) 在許多系統(tǒng)資源非常緊張的單片機應(yīng)用中,使用實時操作系統(tǒng)進行任務(wù)調(diào)度來實現(xiàn)實時
    發(fā)表于 03-29 15:10 ?1456次閱讀
    采用Protothread<b class='flag-5'>實現(xiàn)</b>實時<b class='flag-5'>多任務(wù)</b>系統(tǒng)

    51單片機多任務(wù)機制的實現(xiàn)策略研究

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

    單片機系統(tǒng)多任務(wù)實現(xiàn)方法

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

    51單片機多任務(wù)操作系統(tǒng)的原理與實現(xiàn)

    51單片機多任務(wù)操作系統(tǒng)的原理與實現(xiàn),在51單片機上模擬操作系統(tǒng)
    發(fā)表于 02-28 15:09 ?16次下載

    如何使用51單片機實現(xiàn)多任務(wù)機制的策略詳細(xì)資料說明

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

    單片機多任務(wù)處理方案

    單片機要執(zhí)行多任務(wù),可以使用中斷的方式,也可以使用操作系統(tǒng),目前有一些適用于單片機的小型操作系統(tǒng)。
    的頭像 發(fā)表于 09-13 15:45 ?9607次閱讀

    使用單片機實現(xiàn)道路交通燈多任務(wù)控制系統(tǒng)的課件說明

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

    實時多任務(wù)機制在低功耗單片機系統(tǒng)中的最小實現(xiàn)

    簡要介紹低功耗單片機系統(tǒng)的設(shè)計原則。詳細(xì)闡述了實時多任務(wù)程序結(jié)構(gòu)的特點以及在低功耗單片機中的一種最小實現(xiàn)方法。結(jié)合低功耗熱能測量系統(tǒng)實例介紹其具體
    發(fā)表于 06-24 10:26 ?27次下載

    單片機多任務(wù)事件驅(qū)動C源碼

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

    時間片輪詢+狀態(tài)實現(xiàn)裸機多任務(wù)

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

    單片機裸機實現(xiàn)隊列功能的方案

    單片機裸機實現(xiàn)隊列功能的方案
    的頭像 發(fā)表于 10-17 14:34 ?586次閱讀