ESP32 入門體驗-windows

來源:互聯網
上載者:User

標籤:粘貼   dem   ips   i++   period   電腦   load   網路   str   

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

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

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

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

  現在簡單說一下我的入門過程。

一:win環境

  我直接下載的安信可的一體化開發環境(之前esp8266就是安信可的,所以找了一下,果然有支援ESP32)。安信可官網   ,然後找到下方的  開發環境搭建: 如何安裝安信可一體化開發環境 , 如何使用安信可 ESP 系列一體化開發環境 , 如何為 ESP 系列模組燒錄韌體

點進去,按照教程將網盤的檔案下載下來,再將esp-idf下載下來,可以用剛才下載的軟體中的 cygwn 軟體進行 git 下載,就是下載目錄下的AiThinkerIDE_V0.5\cygwin 中的Cygwin.bat,直接點開,如下:

用法同linux下的命令終端。推薦用這個進行 Git 下載,因為我發現esp32  的 GitHub上有幾個直接點下載,無法下載,但是可以git clone下來,比如裡面有個用ESP32寫的NES遊戲模擬器!

cd 到你想下載到的檔案目錄下,輸入 Git clone --recursive https://github.com/espressif/esp-idf 下載,注意git clone必須添加--recursive,否則無法拉取components目錄下的全部模組。cd 進去,ls 斷行符號可以看到目錄,如下:

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 更新一下,現在你也可以編譯了,不過是人家的,(編譯時間太長了,如果你想實驗自己的代碼的話,還是先修改吧。)

它的代碼如下:

 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   224 #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 interrupt32         io_conf.intr_type = GPIO_PIN_INTR_DISABLE;33         //set as output mode34         io_conf.mode = GPIO_MODE_OUTPUT;35         //bit mask of the pins that you want to set,e.g.GPIO236         io_conf.pin_bit_mask = GPIO_OUTPUT_PIN_SEL;37         //disable pull-down mode38         io_conf.pull_down_en = 0;39         //disable pull-up mode40         io_conf.pull_up_en = 0;41         //configure GPIO with the given settings42         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下載,然後介面,按照下面的選上韌體,填上對應的地址,選好串口,就可以點下載了。

1、2、3就是選擇要下載的.bin檔案和(地址不要搞錯了),三個檔案都在build檔案夾裡面。

  點進去一看,這麼多檔案夾?

  別急。先第一個,選擇bootloader裡面的bootloader.bin,前面打上勾,後面填0x1000,。然後第二三個都在build目錄下,正好兩個,記得partitions_singleapp.bin的地址填0x8000,自己的主要檔案.bin(此處為hello-world.bin)的地址填0x10000。

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

      最後,點下載。最新的下載器不需要按板子上的按鍵,自己就下載了。

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

當然,也可以看串口輸出。比如用 串口獵人之類的。我用的是 SecureCRT ,很好用,刷上micropython,這個可以直接當互動介面,而串口獵人 等軟體則要麼不行,要麼輸入麻煩。推薦這個,可以百度搜。

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

 

  

 

ESP32 入門體驗-windows

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.