女人荫蒂被添全过程13种图片,亚洲+欧美+在线,欧洲精品无码一区二区三区 ,在厨房拨开内裤进入毛片

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

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

3天內不再提示

基于Arduino IDE進行的ESP32編程方案

454398 ? 來源:一板網 ? 作者:風箏 ? 2021-01-09 11:25 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

ESP模塊因其Wi-Fi功能(如ESP8266、ESP-12E等)而廣受歡迎。這些都是具有Wi-Fi功能的強大微控制器模塊。還有一個ESP模塊,它比以前的ESP模塊更強大,更通用 - 其名稱為ESP32。它具有藍牙和Wi-Fi連接,并在許多物聯網項目中使用了ESP32。但是很少有人知道ESP32是雙核微控制器

ESP32具有兩個32位TensilicaXtensa LX6微處理器,這使其成為功能強大的雙核(core0和core1)微控制器。有單核和雙核兩種版本。但是雙核版本更受歡迎,因為它們之間沒有明顯的價格差異。

pIYBAF_5ISOAVMwOAALgMyZsttw569.png

可以使用Arduino IDE、Espressif IDF、Lua RTOS等對ESP32進行編程。使用Arduino IDE進行編程時,由于Core0已編程用于RF通信,因此代碼僅在Core1上運行。但是在本篇文章中,我們將展示如何使用ESP32的兩個內核同時執行兩項操作。在這里,第一個任務是使板載LED閃爍,第二個任務是從DHT11傳感器獲取溫度數據。

首先讓我們看看多核處理器比單核的優勢。

多核處理器的優勢

1.當有兩個以上的進程要同時工作時,多核處理器很有用。

2.由于工作分布在不同的內核之間,因此速度提高了,并且可以同時完成多個過程。

3.可以降低功耗,因為當任意內核處于空閑模式時,它可以用來關閉當時不使用的外圍設備。

4.與單核處理器相比,雙核處理器在不同線程之間切換的頻率更低,因為它們可以一次處理兩個,而不是一次處理一個線程。

ESP32和FreeRTOS

ESP32開發板已經安裝了FreeRTOS固件。 FreeRTOS是開源的實時操作系統,在多任務處理中非常有用。 RTOS有助于管理資源并最大程度地提高系統性能。 FreeRTOS具有許多用于不同目的的API函數,使用這些API,我們可以創建任務并使它們運行在不同的內核上。

FreeRTOS API的完整文檔可以在這里找到。我們將嘗試在代碼中使用一些API來構建在兩個內核上運行的多任務應用程序。

查找ESP32內核ID

在這里,我們將使用Arduino IDE將代碼上傳到ESP32。要知道運行代碼的Core ID,有一個API函數

xPortGetCoreID()

可以從void setup()和void loop()函數中調用此函數,以了解運行這些函數的內核ID。

您可以通過上傳以下草圖來測試此API:

void setup() {

Serial.begin(115200);

Serial.print("setup() function running on core: ");

Serial.println(xPortGetCoreID());

}

void loop() {

Serial.print("loop() function running on core: ");

Serial.println(xPortGetCoreID());

}

上傳完上述草圖后,打開串口監視器,您會發現這兩個函數都在core1上運行,如下所示。

o4YBAF_5ITSAdTCAAAHdhCdBCqI066.png

從以上觀察結果可以得出結論,默認的Arduino草圖始終在core1上運行。

ESP32雙核編程

Arduino IDE支持在ESP32運行FreeRTOS,而FreeRTOS API允許我們創建可以在兩個內核上獨立運行的任務。任務是一段在開發板上執行某些操作的代碼,例如LED閃爍、發送溫度等。

以下函數用于創建可以在兩個內核上運行的任務。在此函數中,我們必須提供一些參數,例如優先級、內核ID等。

現在,按照以下步驟創建任務和任務函數。

1.首先,在void setup函數中創建任務。在這里,我們將創建兩個任務,一個任務是每0.5秒閃爍一次LED,另一任務是每2秒獲得溫度讀數。

xTaskCreatePinnedToCore()函數使用7個參數:

● 實現任務的函數名稱(task1)

● 任務的任何名稱(“ task1”等)

● 分配給任務的堆棧大小,以字為單位

● 任務輸入參數(可以為NULL)

● 任務的優先級(0是最低優先級)

● 任務句柄(可以為NULL)

● 任務將運行的內核ID(0或1)

現在,通過在xTaskCreatePinnedToCore()函數中提供所有參數來創建Task1,以使指示燈閃爍。

xTaskCreatePinnedToCore(Task1code, "Task1", 10000, NULL, 1, NULL,0);

同樣,為任務2創建Task2,并在第7個參數中將內核ID設置為1。

xTaskCreatePinnedToCore(Task2code, "Task2", 10000, NULL, 1, NULL,1);

您可以根據任務的復雜性更改優先級和堆棧大小。

2.現在,我們將實現Task1code和Task2code函數。這些函數包含所需任務的代碼。在本例中,第一個任務將使LED閃爍,另一個任務將獲取溫度。因此,在void setup函數之外,為每個任務創建兩個單獨的函數。

Task1code函數實現了0.5秒后板上LED閃爍,如下所示:

Void Task1code( void * parameter) {

Serial.print("Task1 running on core ");

Serial.println(xPortGetCoreID());

for(;;) {//infinite loop

digitalWrite(led, HIGH);

delay(500);

digitalWrite(led, LOW);

??delay(500);

}

}

同樣,實現Task2code函數以獲取溫度。

void Task2code( void * pvParameters ){

Serial.print("Task2 running on core ");

Serial.println(xPortGetCoreID());

for(;;){

float t = dht.readTemperature();

Serial.print("Temperature: ");

Serial.print(t);

delay(2000);

}

}

3.此處的void loop函數將保持為空。 我們已經知道loop和setup函數在core1上運行,因此您也可以在void loop函數中實現core1任務。

現在代碼部分已經結束,因此只需在“Tool”菜單中選擇ESP32板,即可使用Arduino IDE上傳代碼。 確保已將DHT11傳感器連接到ESP32的D13引腳。

pIYBAF_5IU-ASylTAAIvxSDU1fQ758.png

現在,可以在串口監視器上監視結果,如下所示:

pIYBAF_5IWqAaA8jAAKeuSuX-p0896.png

可以通過使用ESP32的雙核同時運行多個任務來構建諸如實時系統之類的復雜應用程序。
編輯:hfy

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

    關注

    48

    文章

    7928

    瀏覽量

    153978
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    ESP32-CAM帶OV2640攝像頭視頻顯示

    本文介紹了如何在Arduino IDE上開發實現ESP32-CAM模塊獲取實時圖像視頻
    的頭像 發表于 05-23 10:47 ?355次閱讀
    <b class='flag-5'>ESP32</b>-CAM帶OV2640攝像頭視頻顯示

    ESP32S3 Arduino開發指南》第二章 Arduino基礎知識

    對芯片進行開發。 Arduino IDEArduino Integrated Development Environment集成開發環境的簡稱。本教程就是基于該軟件對
    發表于 05-13 09:28

    esp32如何接入豆包

    要在 ESP32 上接入豆包工具,本質上是讓 ESP32 設備與豆包的 API 進行通信,以獲取相關服務
    的頭像 發表于 02-05 13:40 ?1844次閱讀
    <b class='flag-5'>esp32</b>如何接入豆包

    啟明智顯ESP32系列串口屏全面升級!支持樂鑫IDF最新版,兼容Arduino開發環境

    啟明智顯的ESP32系列串口屏迎來了全面升級,SDK更新至樂鑫IDF的最新版本,并且完美兼容Arduino開發環境!
    的頭像 發表于 09-05 16:48 ?1380次閱讀
    啟明智顯<b class='flag-5'>ESP32</b>系列串口屏全面升級!支持樂鑫IDF最新版,兼容<b class='flag-5'>Arduino</b>開發環境

    簡述三種esp32的開發方式是什么

    ESP32是一款由樂鑫(Espressif)推出的低功耗、高性能的Wi-Fi和藍牙雙模無線通信芯片,廣泛應用于物聯網、智能家居、智能硬件等領域。本文將詳細介紹三種ESP32的開發方式:Arduino
    的頭像 發表于 08-20 09:11 ?7647次閱讀

    esp32有哪些編程方式

    ESP32是一款由樂鑫科技(Espressif Systems)推出的低功耗、高性能的Wi-Fi和藍牙雙模微控制器,廣泛應用于物聯網、智能家居、智能穿戴等領域。其編程方式多種多樣,以下是一些主要
    的頭像 發表于 08-20 09:09 ?1813次閱讀

    esp32esp8266代碼共用嗎

    8266作為兩款具有Wi-Fi功能的微控制器,因其低成本、易用性和靈活性而受到廣泛關注。然而,盡管它們在某些方面具有相似性,但在硬件性能、開發環境和編程語言等方面仍存在一定差異。 二、ESP32ESP8266簡介
    的頭像 發表于 08-19 18:23 ?2264次閱讀

    esp8266和esp32區別是什么

    以下是關于ESP8266和ESP32的主要區別: 處理器和架構 : ESP8266 :使用一個Tensilica L106 80MHz的處理器,屬于Xtensa架構。 ESP32 :使
    的頭像 發表于 08-19 18:16 ?7126次閱讀

    esp32用什么軟件編程

    。 概述 ESP32具有豐富的外設接口和靈活的編程方式,支持多種編程語言和開發環境。本文將詳細介紹ESP32編程軟件,包括開發環境、
    的頭像 發表于 08-19 17:24 ?6552次閱讀

    在對ESP進行編程時,使用什么IDE

    在對ESP進行編程時,使用什么IDE
    發表于 07-19 09:45

    如何使用ESP-PROG編程器對ESP-01無線模塊(8 針)進行編程?

    有沒有人能夠使用 ESP-PROG 編程器對 ESP-01 無線模塊(8 針)進行編程? 我根本無法讓串行連接工作。 我什至嘗試連接到
    發表于 07-19 06:39

    ESP32-WROOM-32E、ESP32-WROOM-32D、ESP32-WROOM-32U 有什么區別?ESP32-WROOM-32 后綴字母代表的意思是?

    相信很多人心里都有這樣的疑問,今天就教大家怎么區分它們。 32D和32U是同一個芯片ESP32-D0WD的模組,主要區別的天線模式,分別是板載和IPEX外接天線。 32E是用的升級版的芯片
    的頭像 發表于 07-17 10:09 ?1.6w次閱讀
    <b class='flag-5'>ESP32</b>-WROOM-32E、<b class='flag-5'>ESP32</b>-WROOM-32D、<b class='flag-5'>ESP32</b>-WROOM-32U  有什么區別?<b class='flag-5'>ESP32</b>-WROOM-32 后綴字母代表的意思是?

    ESP32能取代STM32嗎?哪個更好?

    不能!首先二者不存在哪個更好的問題,因為這兩個芯片使用場景各不相同,在嵌入式系統領域,ESP32和STM32都是常見的單片機系列,它們各自具有一定的優勢和適用場景。本文主要探討ESP32是否能夠取代
    的頭像 發表于 07-06 08:04 ?1.8w次閱讀
    <b class='flag-5'>ESP32</b>能取代STM32嗎?哪個更好?

    esp32Arduino IDE中可以實現調用百度智能云接口嗎?

    esp32Arduino IDE中可以實現調用百度智能云接口嗎?涉及到http協議,想知道能不能不用esp-idf
    發表于 06-28 06:52

    esp32-S3支持arduino編程嗎?

    arduino選開發板的時候沒有es32-s3, 只有s2可選。 請問: 1. esp32-S3支持arduino編程嗎 2. arduino
    發表于 06-27 08:23
    主站蜘蛛池模板: 固安县| 黄冈市| 青浦区| 荣昌县| 米脂县| 津市市| 淳化县| 丰城市| 苍溪县| 会东县| 利辛县| 盐城市| 阿拉善右旗| 神木县| 陆河县| 宜丰县| 承德县| 融水| 集贤县| 巴林右旗| 九江市| 壶关县| 珠海市| 扬州市| 迭部县| 开平市| 定兴县| 兴仁县| 虞城县| 东乌珠穆沁旗| 逊克县| 金昌市| 泗水县| 新巴尔虎右旗| 库车县| 民县| 沿河| 韶山市| 图片| 新蔡县| 遵义市|