ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

ESP32 入门 从0到Hello world

ESP32 入门 从0到Hello world 最近很无聊游戏也玩够了。在外吹牛总会说自己是全栈开发但是后来发现我在嵌入式这块完全不懂就想学习一下。开发板选购我这里选的是ESP32 S3-N16R8,为什么选这个型号呢 我一个会嵌入式的朋友推荐的。20多块买的。Windows开发环境搭建下载安装包https://dl.espressif.com/dl/eim/开始安装启动配置向导进阶安装步骤默认我这里直接进入第3步了前面2步是自动执行的。如果前面的几步中提示缺少什么应该安装什么即可。选择IDF版本我这里选的是次新的稳定版本v5.5.5。为什么不选最新版本首先官方的文档中的内容是讲的v5.x.x的。其次以多年的经验最新的版本有几率会踩坑不利于新生学习。选择镜像这里我就默认的选择功能这里我建议只选必需功能。 可选功能如果你知道是做什么用的就选不知道就不要选了。原因我第次是全选的安装过程非常久。其次磁盘空间占用很大17GB左右。选择工具选择安装目录我这里安装到了D:\esp了因为我C安装进度点击开始安装。完成安装保存配置建议保存配置方便下次安装。然后点击退出安装程序即可。空间分析我感叹啊这个Espressif这个目录空间真的不小啊。Hello world创建项目为了简单点我选择使用命令行版本的参考https://docs.espressif.com/projects/esp-idf/zh_CN/stable/esp32/get-started/windows-start-project.htmlESP-IDF 安装完成后EIM 会在桌面上创建 快捷方式用于启动已激活 ESP-IDF 环境的终端。例如点击IDF_v5.5.5_Powershell 快捷方式打开已设置好环境的 PowerShell 终端。至此您已成功在终端中激活 ESP-IDF 环境。后续所有 ESP-IDF 相关命令都需在已激活的终端中运行。开始创建项目现在可以准备开发 ESP32 应用程序了。可以从 ESP-IDF 中 examples 目录下的 get-started/hello_world 项目开始。重要ESP-IDF 编译系统不支持 ESP-IDF 路径或其项目路径中带有空格。将 get-started/hello_world 项目复制至本地的 ~/esp 目录下D:\esp\v5.5.5\esp-idf\examples\get-started\我复制到了D:\workspace\esp\hello_world获取串口信息可以拔掉设备后在插上看端口这里的设备变化因为我这里只有一台设备所以知道这里是COM3cdD:\workspace\esp\hello_world idf.py set-target esp32s3 idf.py menuconfig打开一个新项目后应首先使用 idf.py set-target esp32 设置“目标”芯片。注意此操作将清除并初始化项目之前的编译和配置如有。也可以直接将“目标”配置为环境变量此时可跳过该步骤。更多信息请见 选择目标芯片set-target。正确操作上述步骤后系统将显示以下菜单可以通过此菜单设置项目的具体变量包括 Wi-Fi 网络名称、密码和处理器速度等。hello_world 示例项目会以默认配置运行因此在这一项目中可以跳过使用 menuconfig 进行项目配置这一步骤。这里可以按Q退出。编译项目请使用以下命令编译烧录项目idf.py build运行以上命令可以编译应用程序和所有 ESP-IDF 组件接着生成引导加载程序、分区表和应用程序二进制文件。如果一切正常编译完成后将生成 .bin 文件。烧录到设备请运行以下命令将刚刚生成的二进制文件烧录至 ESP32 开发板idf.py-pPORT flash那么我这里就是上面查到的COM3idf.py-pCOM3 flash如果只插了一个设备可以执行idf.py flash程序会自动识别PORT的。烧录失败的解决办法顺利的话上面已经成功了如果你偶到了跟我一样的问题可以尝试解决一下。说尝试按住Boot键然后点一下RST这时会听到电脑一个设备连接的咚一声在设备管理中发现串口COM3变成COM4了。这时执行烧写日志发生变化了。监视输出可以使用 idf.py -p PORT monitor 命令监视 “hello_world” 项目的运行情况。注意不要忘记将 PORT 替换为自己的串口名称。运行该命令后IDF 监视器 应用程序将启动。我这里显示的内容如下(venv)PS D:\workspace\esp\hello_worldidf.py monitor Executing action: monitor Serial port COM4 Connecting... Detecting chip type... ESP32-S3 Running idf_monitorindirectory D:\workspace\esp\hello_world ExecutingC:\Espressif\tools\python\v5.5.5\venv\Scripts\python.exe D:\esp\v5.5.5\esp-idf\tools/idf_monitor.py -p COM4 -b 115200 --toolchain-prefix xtensa-esp32s3-elf- --target esp32s3 --revision 0 D:\workspace\esp\hello_world\build\hello_world.elf D:\workspace\esp\hello_world\build\bootloader\bootloader.elf --force-color -m C:\Espressif\tools\python\v5.5.5\venv\Scripts\python.exe D:\esp\v5.5.5\esp-idf\tools\idf.py... --- WARNING: GDB cannotopenserial ports accessed as COMx --- NOTE: Using\\.\COM4 instead... --- esp-idf-monitor1.10.0 on\\.\COM4115200--- Quit: Ctrl]|Menu: CtrlT|Help: CtrlT followed by CtrlH ESP-ROM:esp32s3-20210327 Build:Mar272021rst:0x15(USB_UART_CHIP_RESET),boot:0x0(DOWNLOAD(USB/UART0))Saved PC:0x40048d14 --- 0x40048d14: uart_rx_one_charinROM waitingfordownload并没有我想要的hello world的输出。对烧录已经成功了。现在的问题也很明确boot:0x0 (DOWNLOAD(USB/UART0)) waiting for download说明你的 ESP32-S3现在还停留在下载模式没有启动刚才写进去的hello_world程序。现在这样做先退出当前 monitorCtrl ]然后不要按 BOOT直接按一下开发板上的RST / RESET / EN然后重新idf.py monitor或者更简单idf.py-p COM4 monitor正常情况下应该看到类似Hello world! This is ESP32-S3 chip with 2 CPU cores Chip revision: v0.2 ... Restarting in 10 seconds...如果你的hello_world是 ESP-IDF 自带的经典示例它会不断输出类似I (251) main_task: Calling app_main() Hello world! This is esp32s3 chip with 2 CPU core(s), WiFi/BLE, silicon revision v0.2, 2MB external flash Minimum free heap size: 391992 bytes Restarting in 10 seconds... Restarting in 9 seconds... Restarting in 8 seconds...VSCODE上面在命令行中已经成功运行了已经成功一大半了。但是软件开发还是要有IDE更高效。官方文档中有VSCODE那么我就用VSCODE做IDE吧。通过VSCODE打开项目会自动推荐安装C/C Extension Pack然后打开 VS Code点击左侧活动栏中的扩展图标或使用查看显示扩展命令快捷键⇧⌘X 或 CtrlShiftX。搜索ESP-IDF扩展。并安装。安装后VSCODE下面就会有个工具条很方便点击就能编译烧录之类的。构建项目 挺方便点了就可以编译了。烧录项目 会弹出个提示OpenOCD 未运行然后就没成功。我暂时还是用命令烧录。监视设备 挺方便可以查看运行日志。解决找不到include的问题虽然项目可以正常编译但是在VSCODE之中找不到相关的文件看起来看不舒服。如何解决这样的问题呢直接用插件创建项目点击左侧的 指纹图标点击 新项目向导通过这个向导创建的hello_world项目然后打开项目时会有这样的提示缺少compile_commands.json文件代码分析扩展可能会出错。点击 生成compile_commands.json同时VSCode提示我安装 Dev Containers插件我不知道有什么作用反正我也安装了。这个时候发现没有报错了。同时我发现烧录按钮似乎也可以使用了。弹出的选项中这次我选了第2个USB-Serial/JTAG可以正常烧了。这是我发现有个更方便的按钮构建烧录监视3合1,点击 1下就可以了。如何把原来的项目也可以不报错呢现在用插件直接新建的项目可以那么我们不是用这个插件创建的项目如何配置可以达到相同效果呢所以尝试删除D:\workspace\esp\hello_world.vscode目录D:\workspace\esp\hello_world\build\compile_commands.json 文件删除然后用vscode打开发现还是不行经我摸索。在这两个地方设置成正确的版本后就没有报错信息了。至此我们IDE也算配置完成了。总结总体来说不算难。就是软件在线安装的过程比较久。如果要经常配置环境感觉还是用离线的方式比较快一些吧。参考文档https://docs.espressif.com/projects/esp-idf/zh_CN/stable/esp32/get-started/windows-setup.htmlhttps://github.com/espressif/vscode-esp-idf-extension/blob/master/README_CN.md
返回列表