補充:上節(jié)漏掉一個知識點:任務中的延時要用vTaskDelay,這是當前線程延時函數(shù),不要用delay。delay是整個系統(tǒng)延時函數(shù)。
繼續(xù)上節(jié)的延伸,從上篇文章的例子中可以看出兩個任務是讓兩個LED閃爍,創(chuàng)建的兩個任務task1和task2極其相似,除了傳遞的參數(shù)LED_PIN引腳不一樣,還有就是LED燈閃爍的時間不一樣vTaskDelay(1000)。
于是可以想到給任務傳遞兩個參數(shù),LEDpin和vTaskDelay。 先理解以下知識:
結構體:是存放不同類型數(shù)據(jù)的容器。例如:
初始化結構體成員變量的方法有好幾種可以參考此連接:(58條消息) C語言結構體初始化的四種方法_ericbars的博客-CSDN博客_結構體初始化 typedef:給類型起別名。例如
結構體“.”和“->”的區(qū)別: .
左邊是一個結構體變量;->左邊是一個指向結構體的指針。例如
理解了以上知識點后,傳遞多個參數(shù)是將參數(shù)定義為結構體成員變量,示例如下:
注意:
1)Arduino變量初始化要放在setup里,放到外邊,有可能會出錯。
2)全局變量內存的值不會刪除。局部變量的內存值在setup運行完后,會自動刪除,所以如果將聲明結構體變量LEDFLASH led1, led2;放到setup里,傳遞的參數(shù)每次都是隨機的,參數(shù)值會出錯。
3)freertos 語法規(guī)定的創(chuàng)建任務的函數(shù)參數(shù)必須是輸入void空指針 ,然后無返回的void類型。
審核編輯:劉清
-
FreeRTOS
+關注
關注
12文章
493瀏覽量
64334 -
Arduino
+關注
關注
190文章
6498瀏覽量
192142 -
ESP32
+關注
關注
21文章
1017瀏覽量
19260
原文標題:FreeRTOS給任務傳遞多個參數(shù)(ESP32)
文章出處:【微信號:硬件會,微信公眾號:硬件會】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
【RA4L1-SENSOR】電壓檢測器第一個程序增加 FreeRTOS顯示量程0-3300 mV和量程0-15000mV]
【RA4L1-SENSOR】04 用FreeRTOS重構工程
FreeRTOS讀取ADS1299數(shù)據(jù)有誤
stm32f103用freertos對一個采樣率為1kHz的傳感器,進行采樣,數(shù)據(jù)出差
兩個不同頻率晶振靠的近會怎樣

評論