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

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

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

FreeRTOS給任務(wù)傳遞兩個參數(shù)LEDpin和vTaskDelay

工程師鄧生 ? 來源:硬件會 ? 作者:硬件會 ? 2022-09-14 15:34 ? 次閱讀

補充:上節(jié)漏掉一個知識點:任務(wù)中的延時要用vTaskDelay,這是當前線程延時函數(shù),不要用delay。delay是整個系統(tǒng)延時函數(shù)。

繼續(xù)上節(jié)的延伸,從上篇文章的例子中可以看出兩個任務(wù)是讓兩個LED閃爍,創(chuàng)建的兩個任務(wù)task1和task2極其相似,除了傳遞的參數(shù)LED_PIN引腳不一樣,還有就是LED燈閃爍的時間不一樣vTaskDelay(1000)。

于是可以想到給任務(wù)傳遞兩個參數(shù),LEDpin和vTaskDelay。 先理解以下知識:

結(jié)構(gòu)體:是存放不同類型數(shù)據(jù)的容器。例如:

1053c99e-3051-11ed-ba43-dac502259ad0.png

1082872a-3051-11ed-ba43-dac502259ad0.png

10bd3636-3051-11ed-ba43-dac502259ad0.png

初始化結(jié)構(gòu)體成員變量的方法有好幾種可以參考此連接:(58條消息) C語言結(jié)構(gòu)體初始化的四種方法_ericbars的博客-CSDN博客_結(jié)構(gòu)體初始化 typedef:給類型起別名。例如

1130c68c-3051-11ed-ba43-dac502259ad0.png

結(jié)構(gòu)體“.”和“->”的區(qū)別: .

左邊是一個結(jié)構(gòu)體變量;->左邊是一個指向結(jié)構(gòu)體的指針。例如

1157c476-3051-11ed-ba43-dac502259ad0.jpg

理解了以上知識點后,傳遞多個參數(shù)是將參數(shù)定義為結(jié)構(gòu)體成員變量,示例如下:

118e741c-3051-11ed-ba43-dac502259ad0.png

11c38ee0-3051-11ed-ba43-dac502259ad0.png

注意:

1)Arduino變量初始化要放在setup里,放到外邊,有可能會出錯。

2)全局變量內(nèi)存的值不會刪除。局部變量的內(nèi)存值在setup運行完后,會自動刪除,所以如果將聲明結(jié)構(gòu)體變量LEDFLASH led1, led2;放到setup里,傳遞的參數(shù)每次都是隨機的,參數(shù)值會出錯。

3)freertos 語法規(guī)定的創(chuàng)建任務(wù)的函數(shù)參數(shù)必須是輸入void空指針 ,然后無返回的void類型。



審核編輯:劉清

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

    關(guān)注

    12

    文章

    483

    瀏覽量

    61729
  • Arduino
    +關(guān)注

    關(guān)注

    187

    文章

    6453

    瀏覽量

    185933
  • ESP32
    +關(guān)注

    關(guān)注

    17

    文章

    936

    瀏覽量

    16667

原文標題:FreeRTOS給任務(wù)傳遞多個參數(shù)(ESP32)

文章出處:【微信號:硬件會,微信公眾號:硬件會】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    freertos最多支持多少任務(wù)

    FreeRTOS是一輕量級的實時操作系統(tǒng)(RTOS),其設(shè)計初衷就是為了提供簡單、可靠且高效的實時任務(wù)管理。關(guān)于FreeRTOS最多支持多少
    的頭像 發(fā)表于 09-02 14:21 ?284次閱讀

    如何使用freeRTOS兩個任務(wù)之間傳輸任務(wù)數(shù)據(jù)?

    /溫度。 我想創(chuàng)建一 CSV 文件來記錄一段時間內(nèi)的數(shù)據(jù)。 我創(chuàng)建 I2C 任務(wù)的方法與示例中的 emFIlesystem 任務(wù)相同。 者都在運行,做著它們應(yīng)該做的事情,但我覺得它
    發(fā)表于 07-03 07:55

    基于STM32Cubemx創(chuàng)建FreeRTOS,創(chuàng)建UART任務(wù)遇到的兩個問題求解

    基于STM32Cubemx創(chuàng)建FreeRTOS,創(chuàng)建UART任務(wù),經(jīng)過測試發(fā)現(xiàn)有以下兩個問題: 1、串口波特率問題: 在STM32Cubemx中串口設(shè)置如下: /* USART3 init
    發(fā)表于 05-10 07:33

    FREERTOS建了兩個任務(wù),成功運行了,但每次運行2小時左右就死機的原因?

    FREERTOS建了兩個任務(wù),成功運行了,但是,每次運行2小時左右就死機,這是什么情況,是堆棧小的原因嗎?
    發(fā)表于 05-06 08:22

    如何C語言中的函數(shù)定義兩個不同的名字?

    最近有位哥問我,如何C語言中的函數(shù)定義兩個不同的名字?就是這兩個名字都是指向同一函數(shù),同一地址,而且
    的頭像 發(fā)表于 12-19 16:21 ?563次閱讀

    FreeRTOS中的任務(wù)管理

    任務(wù)FreeRTOS 中最基本的調(diào)度單元,它是一段可執(zhí)行的代碼,可以獨立運行。FreeRTOS 中的任務(wù)是基于優(yōu)先級的搶占式調(diào)度,優(yōu)先級高的任務(wù)
    的頭像 發(fā)表于 11-27 17:03 ?800次閱讀

    FreeRTOS中如何在多任務(wù)中訪問外設(shè)?

    FreeRTOS兩個任務(wù)需要輪流使用通過一SPI獲取外部ADC的采集數(shù)據(jù),如何保證兩個任務(wù)
    發(fā)表于 11-10 06:23

    FreeRTOS開啟兩個任務(wù)就會進入DefaultISR的原因?

    開啟兩個任務(wù)就會進入DefaultISR DefaultISR: b DefaultISR .size DefaultISR . - DefaultISR ?這個現(xiàn)象有可能是什么造成的?
    發(fā)表于 11-07 08:30

    freertos中是如何實現(xiàn)兩個任務(wù)的數(shù)據(jù)交換的?

    freertos中是如何實現(xiàn)兩個任務(wù)的數(shù)據(jù)交換的
    發(fā)表于 10-20 06:17

    freertos兩個任務(wù)怎么相互傳遞數(shù)據(jù)?

    freertos兩個任務(wù)怎么相互傳遞數(shù)據(jù)
    發(fā)表于 10-13 06:35

    請問ucos-ii如何向任務(wù)傳遞參數(shù)

    ucos-ii如何向任務(wù)傳遞參數(shù)?
    發(fā)表于 10-11 06:48

    【XR806開發(fā)板試用】FreeRTOS創(chuàng)建任務(wù)測試

    這篇來學習下,XR806開發(fā)板在FreeRTOS系統(tǒng)下創(chuàng)建兩個任務(wù)測試,由于沒有找到學習的文檔,試著參考例程來測試。
    的頭像 發(fā)表于 10-10 11:47 ?562次閱讀
    【XR806開發(fā)板試用】<b class='flag-5'>FreeRTOS</b>創(chuàng)建<b class='flag-5'>任務(wù)</b>測試

    FreeRTOS開關(guān)中斷定義

    FreeRTOS 開關(guān)中斷 FreeRTOS 開關(guān)中斷函數(shù)為 portENABLE_INTERRUPTS ()和 portDISABLE_INTERRUPTS(),這兩個函數(shù)其實是宏定義,在
    的頭像 發(fā)表于 09-28 11:37 ?553次閱讀
    <b class='flag-5'>FreeRTOS</b>開關(guān)中斷定義

    FreeRTOS任務(wù)實現(xiàn)和控制塊

    是無返回值,而且任務(wù)參數(shù)也是 void 指針類型的!任務(wù) 函數(shù)名可以根據(jù)實際情況定義。 (2)、任務(wù)的具體執(zhí)行過程是一大循環(huán),for(;
    的頭像 發(fā)表于 09-28 11:28 ?492次閱讀

    FreeRTOS任務(wù)與協(xié)程介紹

    FreeRTOS 中應(yīng)用既可以使用任務(wù),也可以使用協(xié)程(Co-Routine),或者者混合使用。但是任務(wù)和協(xié)程使用不同的API函數(shù),因此不能通過隊列(或信號量)將數(shù)據(jù)從
    的頭像 發(fā)表于 09-28 11:02 ?861次閱讀