ESP32环境搭建以及入门编程

  某宝上买了个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 进去。

  整个过程如下:

ESP32环境搭建以及入门编程

  app文件夹内是你自己要运行的主文件,可以使你以后自己编写的东西。这个例子中不下载esp-idf-template 也可以。

  最后一行是用来补齐遗漏的模块的(反正我也是从网上看来的,照做就行了。)

  然后,点开之前的IDE的文件件,双击打开ESP_IDE.exe,前两个都在当前目录下,自己一个一个打开就行了,第三个就是你刚在下载的esp-idf文件目录了。就选到你下载的名为esp-idf的文件夹就可以。

ESP32环境搭建以及入门编程

  好了,重头戏来了。

  直接点开AiThinker_IDE.exe,就打开了eclipse,然后在左面空白处点import,将你的esp-idf工程整个加载进来。详细步骤可以参考网络。(我是将整个文件夹复制到了某个文件夹内再打开的,一样。)

  然后对着左侧工程的总目录右击,(不好截图)就是esp-idf 目录右击,选最下面的Propertie 选项,在c/c++Build 右侧修改后面的地址,成你自己放min函数的地方(如之前建立的app,注意看下载后app文件夹里面包含的文件夹)。

ESP32环境搭建以及入门编程

  然后,还是对着左侧总目录右击

  选择 Make Targets 中的create 选项,添加如下

ESP32环境搭建以及入门编程

  同样步骤,再弄一个build:

ESP32环境搭建以及入门编程

  编译之前,按 shift + F9,调出一个选项,

ESP32环境搭建以及入门编程

  选上后点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例子,简单修改如下:

ESP32环境搭建以及入门编程

  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 }

ESP32环境搭建以及入门编程

  接着,build。漫长的等待。。。。。.build成功会显示如下东西:

  build成功后,就是下载了。

  在乐鑫官网可以找到,地址,下载后打开,选择esp32下载,然后界面如图,按照下面的选上固件,填上对应的地址,选好串口,就可以点下载了。

  1、2、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,这个可以直接当交互界面,而串口猎人 等软件则要么不行,要么输入麻烦。推荐这个,可以百度搜。

  esp32引脚图

ESP32环境搭建以及入门编程
ESP32环境搭建以及入门编程
ESP32环境搭建以及入门编程
  • ESP32环境搭建以及入门编程已关闭评论
    A+
发布日期:2020年04月23日  所属分类:消费电子