在 Ubuntu 下使用 ESP-IDF 通过串口烧录 ESP32

发布于:2025-05-08 ⋅ 阅读:(38) ⋅ 点赞:(0)


1. 准备工作

(1) 安装 ESP-IDF 环境

确保已完成 ESP-IDF 的安装和配置(参考官方文档):

bash

复制

下载

git clone --recursive https://github.com/espressif/esp-idf.git
cd esp-idf
./install.sh
. ./export.sh
(2) 连接开发板
  • 通过 USB 线将 ESP32/ESP8266 开发板连接到 Ubuntu 主机。

  • 确认设备识别到的串口号(通常为 /dev/ttyUSB0 或 /dev/ttyACM0)。

(3) 设置串口权限

bash

复制

下载

sudo chmod 666 /dev/ttyUSB0  # 临时授权
# 或永久添加用户到 dialout 组:
sudo usermod -a -G dialout $USER
sudo reboot  # 重启生效

验证串口是否可访问:

bash

复制

下载

ls -l /dev/ttyUSB*

2. 编译并烧录固件

进入项目目录后执行以下步骤:

(1) 配置目标芯片

bash

复制

下载

idf.py set-target esp32  # 或 esp32s2/esp32c3/esp8266
(2) 编译项目

bash

复制

下载

idf.py build
(3) 烧录固件

通过串口烧录(替换 /dev/ttyUSB0 为你的实际端口):

bash

复制

下载

idf.py -p /dev/ttyUSB0 flash

关键参数

  • -p PORT:指定串口设备。

  • -b BAUD:可选,修改波特率(默认 460800)。


3. 常见问题解决

(1) 串口权限不足

错误提示:

复制

下载

Failed to open port /dev/ttyUSB0
Permission denied

解决

bash

复制

下载

sudo chmod 666 /dev/ttyUSB0
# 或永久加入 dialout 组(见步骤1.3)
(2) 烧录失败(波特率/连接问题)

尝试降低波特率:

bash

复制

下载

idf.py -p /dev/ttyUSB0 -b 115200 flash

或检查硬件连接(USB 线/开发板是否正常)。

(3) 目标芯片不匹配

确保 set-target 与开发板型号一致(如 esp32 vs esp32s3)。


4. 高级操作

(1) 监视串口输出

烧录后实时查看日志:

bash

复制

下载

idf.py -p /dev/ttyUSB0 monitor

退出监视:按 Ctrl+]

(2) 擦除 Flash

bash

复制

下载

idf.py -p /dev/ttyUSB0 erase_flash
(3) 自定义烧录选项

在 menuconfig 中配置串口和 Flash 设置:

bash

复制

下载

idf.py menuconfig

路径:
Serial flasher config → 修改波特率、Flash 模式等。


5. 自动化脚本示例

将常用命令写入脚本(如 flash.sh):

bash

复制

下载

#!/bin/bash
PORT=/dev/ttyUSB0
BAUD=460800

idf.py build
idf.py -p $PORT -b $BAUD flash monitor

运行:

bash

复制

下载

chmod +x flash.sh
./flash.sh

总结

步骤 命令
设置串口权限 sudo chmod 666 /dev/ttyUSB0
编译项目 idf.py build
烧录固件 idf.py -p /dev/ttyUSB0 flash
监视输出 idf.py -p /dev/ttyUSB0 monitor

通过以上步骤,你可以在 Ubuntu 下顺利完成 ESP-IDF 项目的串口烧录。遇到问题时,优先检查串口权限、硬件连接和芯片型号配置。


网站公告

今日签到

点亮在社区的每一天
去签到