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


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 项目的串口烧录。遇到问题时,优先检查串口权限、硬件连接和芯片型号配置。

### 关于ESP-01S模块的软件开发 #### 开发工具配置 为了进行基于ESP-01S模块的软件开发,需先完成开发环境的搭建。通常情况下,在Arduino IDE环境中可以轻松实现对ESP32系列芯片的支持。具体操作如下:通过`工具->开发板:“XXXX” -> ESP32 Arduino`选项来选择对应的开发板型号,例如NodeMCU-32S作为目标设备[^1]。 #### 软件支持与SDK介绍 乐鑫公司提供了全面的软硬件资源用于支持ESP32设备的研发工作。其官方推出的ESP-IDF框架允许开发者高效构建各类IoT应用方案,涵盖了Wi-Fi连接、经典蓝牙以及低功耗蓝牙等功能需求[^2]。尽管上述描述针对的是ESP32平台,但对于同属乐鑫家族成员之一的ESP8266(含ESP-01S变种),也有相应的非RTOS SDK可供选用。 #### 实验环境说明 本案例中的实际测试过程发生在Windows 10主机之上借助VMware Workstation Pro创建出来的Ubuntu 16.04 LTS虚拟操作系统内部执行完毕全部流程,包括但不限于源码编辑、项目编译直至最终烧录镜像文件到物理硬件上运行验证整个闭环环节均顺利完成[^3]。 #### 示例代码展示 下面给出一段简单的blink程序例子适用于ESP8266架构下的GPIO控制场景: ```c++ #include <ESP8266WiFi.h> const int ledPin = 2; void setup() { pinMode(ledPin, OUTPUT); } void loop() { digitalWrite(ledPin, HIGH); // turn the LED on (HIGH is the voltage level) delay(1000); // wait for a second digitalWrite(ledPin, LOW); // turn the LED off by making the voltage LOW delay(1000); // wait for a second } ``` 此段脚本实现了周期性点亮熄灭LED灯泡的效果演示功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值