ESP32 環境搭建以及入門編程流程和體驗-windows

  本帖適合入門級人員,但同時歡迎新老讀者批評指正。python

  某寶上買了個esp32,還有一本ESP32開發指南的書。linux

  而後就是環境搭建。上面寫的主要是linux上的,我在本身的orange pi pc開發板上搭建了半天,後面仍是有些地方有問題,沒弄好。之後有空了再處理處理,畢竟一個香橙派的價格那麼低,再加一個顯示屏價格也不高,並且它自己也能硬件編程,還能用於學習各類編程......雖然速度慢了點,可是入門級絕對夠用。固然,若是那些A80啦、rk3399啦能便宜下來,最起碼能比微型電腦便宜的話就行了......扯遠了。c++

  因此,我換了window的環境搭建。以前有一個esp8266,只用它拿來玩micropython了,如今想學習esp32編程的話,除了用micropython,就要從新開始了。並且以前沒怎麼用過eclipse,搭建好環境後費了老半天事才搞明白。git

  如今簡單說一下個人入門過程。github

一:win環境express

  我直接下載的安信可的一體化開發環境(以前esp8266就是安信可的,因此找了一下,果真有支持ESP32)。安信可官網   ,而後找到下方的  開發環境搭建: 如何安裝安信可一體化開發環境 , 如何使用安信可 ESP 系列一體化開發環境 , 如何爲 ESP 系列模組燒錄固件編程

點進去,按照教程將網盤的文件下載下來,再將esp-idf下載下來,能夠用剛纔下載的軟件中的 cygwn 軟件進行 git 下載,就是下載目錄下的AiThinkerIDE_V0.5\cygwin 中的Cygwin.bat,直接點開,以下:網絡

用法同linux下的命令終端。推薦用這個進行 Git 下載,由於我發現esp32  的 GitHub上有幾個直接點下載,沒法下載,可是能夠git clone下來,好比裏面有個用ESP32寫的NES遊戲模擬器!app

cd 到你想下載到的文件目錄下,輸入 Git clone --recursive https://github.com/espressif/esp-idf 下載,注意git clone必須添加--recursive,不然沒法拉取components目錄下的所有模塊。cd 進去,ls 回車能夠看到目錄,以下:less

l components:ESP-IDF的核心組件

l docs:ESP-IDF相關文檔

l examples:ESP-IDF提供的示例程序,包括衆多外設、Wi-Fi、藍牙等demo

l make:EPS-IDF工程管理目錄

l tools:ESP-IDF提供的工具集

而後最好創建一個APP文件夾,將提供的另外一個示例程序git 進去。

整個過程以下:

app文件夾內是你本身要運行的主文件,可使你之後本身編寫的東西。這個例子中不下載esp-idf-template 也能夠。

最後一行是用來補齊遺漏的模塊的(反正我也是從網上看來的,照作就好了。)

  而後,點開以前的IDE的文件件,雙擊打開ESP_IDE.exe,前兩個都在當前目錄下,本身一個一個打開就好了,第三個就是你剛在下載的esp-idf文件目錄了。就選到你下載的名爲esp-idf的文件夾就能夠。

 

 

  好了,重頭戲來了。

  直接點開AiThinker_IDE.exe,就打開了eclipse,而後在左面空白處點import,將你的esp-idf工程整個加載進來。詳細步驟能夠參考網絡。(我是將整個文件夾複製到了某個文件夾內再打開的,同樣。)

  而後對着左側工程的總目錄右擊,(很差截圖)就是esp-idf 目錄右擊,選最下面的Propertie 選項,在c/c++Build 右側修改後面的地址,成你本身放min函數的地方(如以前創建的app,注意看下載後app文件夾裏面包含的文件夾)。

 

 

而後,仍是對着左側總目錄右擊

選擇 Make Targets 中的create 選項,添加以下

一樣步驟,再弄一個build:

編譯以前,按 shift + F9,調出一個選項,

選上後點build,編譯一會跳出一個界面,通常只須要直接選擇exit退出就行了。

而後你就能夠直接在左側工程總目錄右擊選擇 Buil Project 了(若是以前build 過了,記得clean一下)。

好了,一個工程的步驟就這樣了。

不過若是你想寫個本身的程序,該怎麼弄呢?

我們先從修改例程開始。

將~\esp-idf\examples\get-started\hello_world下面全部的文件  (三個吧)複製到你本身剛纔創建的app目錄下,選擇 覆蓋粘貼,而後 對左側總目錄右擊,選擇 Refresh 更新一下,如今你也能夠編譯了,不過是人家的,(編譯時間太長了,若是你想試驗本身的代碼的話,仍是先修改吧。)之後寫程序的步驟基本就是這樣。要是更名字的話能夠去Makefile文件裏改一下(其餘地方可能也要改,本身摸索一下)。

它的代碼以下:

 1 /* Hello World Example
 2 
 3    This example code is in the Public Domain (or CC0 licensed, at your option.)
 4 
 5    Unless required by applicable law or agreed to in writing, this
 6    software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
 7    CONDITIONS OF ANY KIND, either express or implied.
 8 */
 9 #include <stdio.h>
10 #include "freertos/FreeRTOS.h"
11 #include "freertos/task.h"
12 #include "esp_system.h"
13 #include "esp_spi_flash.h"
14 
15 
16 void app_main()
17 {
18     printf("Hello world!\n");//串口打印
19 
20     /* Print chip information */
21     esp_chip_info_t chip_info;
22     esp_chip_info(&chip_info);
23     printf("This is ESP32 chip with %d CPU cores, WiFi%s%s, ",
24             chip_info.cores,
25             (chip_info.features & CHIP_FEATURE_BT) ? "/BT" : "",
26             (chip_info.features & CHIP_FEATURE_BLE) ? "/BLE" : "");
27 
28     printf("silicon revision %d, ", chip_info.revision);
29 
30     printf("%dMB %s flash\n", spi_flash_get_chip_size() / (1024 * 1024),
31             (chip_info.features & CHIP_FEATURE_EMB_FLASH) ? "embedded" : "external");
32 
33     for (int i = 10; i >= 0; i--) {
34         printf("Restarting in %d seconds...\n", i);
35         vTaskDelay(1000 / portTICK_PERIOD_MS);
36     }
37     printf("Restarting now.\n");
38     fflush(stdout);
39     esp_restart();//重啓選項
40 }

 

 參考example下的GPIO例子,簡單修改以下:

 

 1 * Hello World Example
 2 
 3    This example code is in the Public Domain (or CC0 licensed, at your option.)
 4 
 5    Unless required by applicable law or agreed to in writing, this
 6    software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
 7    CONDITIONS OF ANY KIND, either express or implied.
 8 */
 9 #include <stdio.h>
10 #include "freertos/FreeRTOS.h"
11 #include "freertos/task.h"
12 #include "esp_system.h"
13 #include "esp_spi_flash.h"
14 
15 
16 #include <string.h>
17 #include <stdlib.h>
18 #include "freertos/FreeRTOS.h"
19 #include "freertos/task.h"
20 #include "freertos/queue.h"
21 #include "driver/gpio.h"
22 
23 #define GPIO_OUTPUT_IO_LED   2
24 #define GPIO_OUTPUT_PIN_SEL  ((1<<GPIO_OUTPUT_IO_LED) )
25 int i=0;
26 void app_main()
27 {
28 
29      //初始化GPIO引腳,直接複製自GPIO例子
30       gpio_config_t io_conf;
31         //disable interrupt
32         io_conf.intr_type = GPIO_PIN_INTR_DISABLE;
33         //set as output mode
34         io_conf.mode = GPIO_MODE_OUTPUT;
35         //bit mask of the pins that you want to set,e.g.GPIO2
36         io_conf.pin_bit_mask = GPIO_OUTPUT_PIN_SEL;
37         //disable pull-down mode
38         io_conf.pull_down_en = 0;
39         //disable pull-up mode
40         io_conf.pull_up_en = 0;
41         //configure GPIO with the given settings
42         gpio_config(&io_conf);
43 
44 
45     printf("Hello world!\n");
46 
47     /* Print chip information */
48     esp_chip_info_t chip_info;
49     esp_chip_info(&chip_info);
50     printf("This is ESP32 chip with %d CPU cores, WiFi%s%s, ",
51             chip_info.cores,
52             (chip_info.features & CHIP_FEATURE_BT) ? "/BT" : "",
53             (chip_info.features & CHIP_FEATURE_BLE) ? "/BLE" : "");
54 
55     printf("silicon revision %d, ", chip_info.revision);
56 
57     printf("%dMB %s flash\n", spi_flash_get_chip_size() / (1024 * 1024),
58             (chip_info.features & CHIP_FEATURE_EMB_FLASH) ? "embedded" : "external");
59 
60    // for (int i = 10; i >= 0; i--)
61     while(1)
62     {
63        //printf("Restarting in %d seconds...\n", i);
64         vTaskDelay(1000 / portTICK_PERIOD_MS);//延時 65         printf("I am ZhiNianZhiZhan! \n");
66         printf("Try To Study ESP32\n");
67         gpio_set_level(GPIO_OUTPUT_IO_LED, i % 2);//將板子上的led燈不斷翻轉IO,使其閃爍
68         i++;
69         if(i>499)i=0;
70     }
71     //printf("Restarting now.\n");
72 
73    //fflush(stdout);
74     //esp_restart();//重啓函數,屏蔽掉就不重啓了。
75 }

接着,build。漫長的等待......build成功會顯示以下東西:

 

build成功後,就是下載了。

在樂鑫官網能夠找到,地址,下載後打開,選擇esp32下載,而後界面如圖,按照下面的選上固件,填上對應的地址,選好串口,就能夠點下載了。

如圖:

一、二、3就是選擇要下載的.bin文件和下載地址(地址不要搞錯了),三個文件都在build文件夾裏面。

  點進去一看,這麼多文件夾?

  別急。先第一個,選擇build文件夾下bootloader裏面的bootloader.bin,前面打上勾,後面填0x1000,。而後第二三個都在build目錄下,正好兩個,記得partitions_singleapp.bin的地址填0x8000,本身的主要文件.bin(此處爲hello-world.bin)的地址填0x10000。

  接着,把下面的選項對着選好(默認的應該就是),接着按照你板子所插的USB口的串口號選填COM口(不知道的或是驅動還沒安的就百度一下吧,能夠插上後用驅動精靈安裝驅動,而後在設備管理中查看com 號)。

      最後,點下載。最新的下載器不須要按板子上的按鍵,本身就下載了。

  下載完成後,下載器左下角會變成「FINISH 完成」字樣,而後你就能夠串口鏈接,或是直接按一下板子上的EN鍵,當藍色的小燈一閃一閃的,以及串口不斷輸出兩行字符,就說明整個步驟成功了。

固然,也能夠看串口輸出。好比用 串口獵人之類的。我用的是 SecureCRT ,很好用,刷上micropython,這個能夠直接當交互界面,而串口獵人 等軟件則要麼不行,要麼輸入麻煩。推薦這個,能夠百度搜。

  好了,先寫到這兒,之後慢慢摸索開發,再寫教程。

相關文章
相關標籤/搜索