玩转ESP32(1):运行Hello World
ESP32芯片是乐鑫最新的WIFI+蓝牙低功耗物联网芯片,本教程主要基于官方github资源,目前网上教程不多,有兴趣的可以参考跟着小狂玩ESP32系列。本教程主要基于Ubuntu,Windows环境开发稍有不同,可参考乐鑫官方文档。教程所使用的esp32开发板,只需USB口连接电脑即可。
例程主要基于esp32 SDK:esp-idf,后续程序也都基于IDF。
前期准备
安装依赖包
为了编译ESP-IDF,我们首先需要安装以下依赖包:
sudo apt-get install git wget make libncurses-dev flex bison gperf python python-serial
下载ESP32工具链
ESP32工具链是专用于编译esp32的GCC编译器,可以直接通过网站下载:
64位:
https://dl.espressif.com/dl/xtensa-esp32-elf-linux64-1.22.0-61-gab8375a-5.2.0.tar.gz
32位:
https://dl.espressif.com/dl/xtensa-esp32-elf-linux32-1.22.0-61-gab8375a-5.2.0.tar.gz
下载完成后,解压缩到某一目录,例如:
mkdir -p ~/esp
cd ~/esp
tar -xzf ~/Downloads/xtensa-esp32-elf-linux64-1.22.0-61-gab8375a-5.2.0.tar.gz
工具链会被提取到~/esp/xtensa-esp32-elf/路径下,然后将xtensa路径更新到~/.bash_profile文件中,增加如下指令:
export PATH=$PATH:$HOME/esp/xtensa-esp32-elf/bin
可以在命令行中输入xtensa然后按tab键查看是否成功添加。
从Github上获取ESP-IDF
可以直接通过gitclone的方式获取ESP-IDF:
cd ~/esp
git clone –recursive https://github.com/espressif/esp-idf.git
一定要注意recursive选项,因为esp32的很多库是被封装成submodules的,所以一定要添加这个选项,并确保所有的submodules下载完成,如果下载submodules出现问题,还可以通过如下命令去重新下载:
cd ~/esp/esp-idf
git submodule update –init
此时,ESP-IDF会被下载到~/esp/esp-idf路径下。
运行Hello World
HelloWorld程序在esp-idf的examples/get-started目录下,首先将hello_world目录拷贝到制定目录,在这里,我们在esp目录中创建一个myapp目录用来存放我们的项目:
cd ~/esp
mkdir myapp
cp -r esp-idf/examples/get-started/hello_world myapp
进入myapp文件夹
cd ~/esp/esp-idf
设置我们的编译器
export IDF_PATH=~/esp/esp-idf
配置被烧写的串口:
make menuconfig
其中Serial flasher config是配置串口项,缺省串口号是/dev/ttyUSB0,可根据自己的串口号进行修改。
编译并烧写我们的程序:
make flash
make flash其实是make 和make flash两步合一,只是make的话会只编译而不烧写程序。
如果编译过程中出现could not open port /dev/ttyUSB0,就要在make menuconfig中更改自己的串口号。
烧写完成后,可以使用串口调试工具查看输出,这里我使用了cutecom来查看,正确的输出应该是10s重启一次,打印一下hello_world,如下图所示: