開發板購買連接windows
https://item.taobao.com/item.htm?spm=a2oq0.12575281.0.0.50111deb2Ij1As&ft=t&id=626366733674app
開發板簡介
開發環境搭建 windows
源碼示例:
0_Hello Bug (ESP_LOGX與printf) 工程模板/打印調試輸出
1_LED LED亮滅控制
2_LED_Task 使用任務方式控制LED
3_LEDC_PWM 使用LEDC來控制LED實現呼吸燈效果
4_ADC_LightR 使用ADC讀取光敏電阻實現光照傳感
5_KEY_Short_Long 按鈕長按短按實現
6_TouchPad_Interrupt 電容觸摸中斷實現
7_WS2812_RMT RGB_LED彩虹變色示例
8_DHT11_RMT 使用RMT實現讀取DHT11溫溼度傳感器
9_SPI_SDCard 使用SPI總線實現TF卡文件系統示例
10_IIC_ADXL345 使用IIC總線實現讀取ADXL345角度加速度傳感器
11_IIC_AT24C02 使用IIC總線實現小容量數據儲存測試
12_IR_Rev_RMT 使用RMT實現紅外遙控接收掃碼(NEC)
13_IR_Send_RMT 使用RMT實現紅外數據發送(NEC)
14_WIFI_Scan 附近WIFI信號掃描示例
15_WIFI_AP 建立軟AP示例
16_WIFI_AP_TCP_Server 在軟AP模式下實現TCP服務端
17_WIFI_AP_TCP_Client 在軟AP模式下實現TCP客戶端
18_WIFI_AP_UDP 在軟AP模式下實現UDP通信
19_WIFI_STA 建立STA站模
20_WIFI_STA_TCP_Server 在站模式STA下實現TCP服務端
21_WIFI_STA_TCP_Client 在站模式STA下實現TCP客戶端
22_WIFI_STA_UDP 在站模式STA下實現UDP通信
23_LVGL_Test LVGL圖形庫簡單示例框架
查看開發板原理圖,能夠看到開發板上有兩個指示燈,一個是電源指示燈,直接3.3V到地,不受程序控制,APP_LED接在ESP32-WROOM-32E集成模擬的GPIO4腳上,看原理圖可得知IO4拉高LED即滅掉,到地則亮起函數
先引用必要頭文件測試
控制LED其實就是控制GPIO的電平高低,須要操做GPIO因此要引入esp_idf框架的gpio頭文件ui
// LED_Task Example #include <stdio.h> #include "freertos/FreeRTOS.h" #include "freertos/task.h" #include "driver/gpio.h" #include "sdkconfig.h" #include <esp_log.h>
定義LED所鏈接的GPIO號.net
#define BLINK_GPIO 4 // LED 鏈接的 GPIO端口
編寫main函數設計
void app_main(void) { ESP_LOGI(TAG, "APP Start......"); // 參數:任務函數,任務別名,任務堆棧的深度,參數的指針,任務優先級,回傳句柄 xTaskCreate(&blink_task,"LED_Task",configMINIMAL_STACK_SIZE,NULL,5,NULL); }
xTaskCreate函數原型指針
portBASE_TYPE xTaskCreate( pdTASK_CODE pvTaskCode, const portCHAR * const pcName, unsigned portSHORT usStackDepth, void *pvParameters, unsigned portBASE_TYPE uxPriority, xTaskHandle *pvCreatedTask);
pvTaskCode :指向任務函數。任務必須以永不返回的形式實現(好比一個死循環)調試
pcName : 任務函數的別名,僅僅是方便調試所用
usStackDepth :任務堆棧的深度,定義了堆棧能夠包含的變量數——不是字節數。好比若是堆棧的寬度爲16BIT,而 usStackDepth定義爲100,則200 字節被分配給堆棧存儲。堆棧深度乘以堆棧寬度的最大值,不能超過 size_t變量能包含的最大值
pvParameters :做爲參數的指針,當任務建立時
uxPriority :任務的優先級。包括MPU支持的系統能夠選擇在特權模式(系統模式)建立任務,經過設置優先級參數的portPRIVILEGE_BIT位。好比,建立一個特權任務在優先級2,則uxPriority 應當設置爲( 2 | portPRIVILEGE_BIT )
pvCreatedTask :回傳一個句柄,以便建立的任務能夠被關聯。返回值:pdPASS,若是任務成功建立且添加到就緒列表,不然返回一個錯誤代碼,見 projdefs.h
blink_task任務函數
void blink_task(void *pvParameter) { gpio_pad_select_gpio(BLINK_GPIO);// 選擇要操做的GPIO gpio_set_direction(BLINK_GPIO, GPIO_MODE_OUTPUT);// 設置GPIO爲推輓輸出模式 while(1) { ESP_LOGI(TAG, "Turning On the LED\n"); gpio_set_level(BLINK_GPIO, 0);// GPIO輸出低 vTaskDelay(1000 / portTICK_PERIOD_MS); ESP_LOGI(TAG, "Turning Off the LED\n"); gpio_set_level(BLINK_GPIO, 1);// GPIO輸出高 vTaskDelay(1000 / portTICK_PERIOD_MS); } }
此函數和
http://www.javashuo.com/article/p-mbzynjwm-ne.html 控制LED函數同樣
打開ESP-IDF Command Prompt
cd命令進入此工程目錄
cd F:\ESP32_DevBoard_File\2_LED_Task
查看電腦設備管理器中開發板的串口號
執行idf.py -p COM9 flash monitor從串口9下載並運行打開口顯示設備調試信息 Ctrl+c退出運行
能夠看到開發板的APP_LED一直閃爍。