補(bǔ)充:上節(jié)漏掉一個(gè)知識(shí)點(diǎn):任務(wù)中的延時(shí)要用vTaskDelay,這是當(dāng)前線程延時(shí)函數(shù),不要用delay。delay是整個(gè)系統(tǒng)延時(shí)函數(shù)。
繼續(xù)上節(jié)的延伸,從上篇文章的例子中可以看出兩個(gè)任務(wù)是讓兩個(gè)LED閃爍,創(chuàng)建的兩個(gè)任務(wù)task1和task2極其相似,除了傳遞的參數(shù)LED_PIN引腳不一樣,還有就是LED燈閃爍的時(shí)間不一樣vTaskDelay(1000)。
于是可以想到給任務(wù)傳遞兩個(gè)參數(shù),LEDpin和vTaskDelay。 先理解以下知識(shí):
結(jié)構(gòu)體:是存放不同類型數(shù)據(jù)的容器。例如:
初始化結(jié)構(gòu)體成員變量的方法有好幾種可以參考此連接:(58條消息) C語言結(jié)構(gòu)體初始化的四種方法_ericbars的博客-CSDN博客_結(jié)構(gòu)體初始化 typedef:給類型起別名。例如
結(jié)構(gòu)體“.”和“->”的區(qū)別: .
左邊是一個(gè)結(jié)構(gòu)體變量;->左邊是一個(gè)指向結(jié)構(gòu)體的指針。例如
理解了以上知識(shí)點(diǎn)后,傳遞多個(gè)參數(shù)是將參數(shù)定義為結(jié)構(gòu)體成員變量,示例如下:
注意:
1)Arduino變量初始化要放在setup里,放到外邊,有可能會(huì)出錯(cuò)。
2)全局變量?jī)?nèi)存的值不會(huì)刪除。局部變量的內(nèi)存值在setup運(yùn)行完后,會(huì)自動(dòng)刪除,所以如果將聲明結(jié)構(gòu)體變量LEDFLASH led1, led2;放到setup里,傳遞的參數(shù)每次都是隨機(jī)的,參數(shù)值會(huì)出錯(cuò)。
3)freertos 語法規(guī)定的創(chuàng)建任務(wù)的函數(shù)參數(shù)必須是輸入void空指針 ,然后無返回的void類型。
審核編輯:劉清
-
FreeRTOS
+關(guān)注
關(guān)注
14文章
496瀏覽量
65883 -
Arduino
+關(guān)注
關(guān)注
190文章
6509瀏覽量
195128 -
ESP32
+關(guān)注
關(guān)注
21文章
1047瀏覽量
20459
原文標(biāo)題:FreeRTOS給任務(wù)傳遞多個(gè)參數(shù)(ESP32)
文章出處:【微信號(hào):硬件會(huì),微信公眾號(hào):硬件會(huì)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
一個(gè)硬件SPI兩個(gè)CS操作兩個(gè)norflash,怎么互斥操作兩個(gè)norflash?
基本半導(dǎo)體連獲兩個(gè)行業(yè)獎(jiǎng)項(xiàng)
【RA4E2開發(fā)板評(píng)測(cè)】LED1及LED2輪流點(diǎn)亮并同時(shí)亮8秒,體驗(yàn)FreeRTOS多線程
【RA4L1-SENSOR】電壓檢測(cè)器第一個(gè)程序增加 FreeRTOS顯示量程0-3300 mV和量程0-15000mV]
【RA4L1-SENSOR】05 按鍵實(shí)現(xiàn)RTOS任務(wù)切換
【RA4L1-SENSOR】04 用FreeRTOS重構(gòu)工程
向FreeRTOS的任務(wù)中發(fā)送事件隊(duì)列是有什么限制嗎?
FreeRTOS讀取ADS1299數(shù)據(jù)有誤
stm32f103用freertos對(duì)一個(gè)采樣率為1kHz的傳感器,進(jìn)行采樣,數(shù)據(jù)出差
【RA-Eco-RA4M2開發(fā)板評(píng)測(cè)】RA-Eco-RA4M2 移植FreeRTOS
兩個(gè)不同頻率晶振靠的近會(huì)怎樣

如何把兩個(gè)數(shù)據(jù)返回給調(diào)用函數(shù)
【RA-Eco-RA4E2-64PIN-V1.0開發(fā)板試用】05、FreeRTOS
DS90UB941AS是否支持帶兩個(gè)屏? 兩個(gè)屏是要求一樣的參數(shù)才行嗎?
從時(shí)域和頻域兩個(gè)角度對(duì)信號(hào)進(jìn)行分析

評(píng)論