ESP32-S3 USB & UART 下载总结

本文介绍了ESP32-S3芯片的两种下载方式:UART0串口下载和USB下载,详细步骤包括设置硬件连接、配置编译环境、固件烧录过程,适用于Ubuntu和Windows平台。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ESP32-S3 支持两种下载方式:UART0 下载和 USB 下载。

1 UART0 下载

2 USB 下载

ESP32-S3 系列集成了全速 USB OnThe-Go (OTG) 接口,符合 USB 1.1 规范,可以支持使用 USB 下载固件USB 通信

2.1 ESP32-S3 与 USB 接口

在这里插入图片描述
在这里插入图片描述

2.2 ESP32-S3 USB 下载的硬件接线要求如下:

VDD -> 3V3
GND -> GND 
EN -> 拉高(或接 3V3)
GPIO19 -> D - (白色)
GPIO20 -> D + (绿色)

注意:当 GPIO46 = 1 且 GPIO0 = 0 时不可使用。目前只在 esp-idf master 版本上支持 USB 下载方式。

2.3 在 esp-idf 编译环境下,以 esp-idf/examples/get-started/hello_world 例程为例

2.3.1 基于 Ubuntu 的 esp-idf 编译环境下,请按照如下进行操作

  • 在 menuconfig 中选择如下配置

Component config → ESP System Settings → Channel for console output → USB Serial/JTAG Controller
在这里插入图片描述

  • 执行如下命令进行编译:

    idf.py dfu
    
  • 执行如下命令查询 USB 端口号

    ll /dev/ttyACM*
    
  • 执行如下命令进行下载:

    在下载固件前,请先使用 UART0 查看日志是否进入下载模式,进入下载模式的日志如下:

    ESP-ROM:esp32s3-20210327
    Build:Mar 27 2021
    rst:0x15 (USB_UART_CHIP_RESET),boot:0x0 (DOWNLOAD(USB/UART0))
    Saved PC:0x40041a76
    waiting for download
    
    idf.py -p /dev/ttyACM0 flash
    

2.3.2 基于 Windows 的 esp-idf 编译环境下,请按照如下进行操作

  • 如果使用的是 ESP32-S3 开发板上的 USB 接口下载固件,请按住 Boot 按键在进行上电,然后获取 COM 口。
    请添加图片描述

  • 如果使用的是模组通过 USB (GPIO19、GPIO20)管脚直接连线,则直接上电获取 COM 口即可。

  • 然后使用 idf.py -p COM* flash monitor 命令来下载固件。


【说明】

  • Ubuntu 上查询 USB 接口

    ll dev/ttyACM*
    
  • 在 Ubuntu 环境则需要使用如下命令,通过 USB 接口查看程序启动日志

    idf.py -p /dev/ttyACM0 monitor
    
### Python 字符串拼接方法及实例 #### 使用加号 `+` 进行字符串连接 最简单的字符串拼接方式是使用加号 `+` 将两个或多个字符串相连。 ```python str1 = "Hello" str2 = "World" result = str1 + ", " + str2 + "!" print(result) # 输出: Hello, World! ``` 这种方法适用于少量字符串的简单拼接[^4]。 #### 使用 `join()` 方法进行批量拼接 对于大量字符串或者列表中的字符串,可以使用 `join()` 方法来高效地完成拼接工作。此方法接受一个可迭代对象作为参数,并将其中的所有元素按照指定分隔符连接成一个新的字符串。 ```python words = ["hello", "beautiful", "world"] separator = "-" joined_string = separator.join(words) print(joined_string) # 输出: hello-beautiful-world ``` 当需要在每两个单词之间加入特定字符时,这种方式非常方便[^3]。 #### 利用 f-string 实现表达式内嵌 自 Python 3.6 起引入了格式化字符串字面量(f-string),它允许直接在字符串前加上字母"f" 或者 "F" ,并在大括号 `{}` 中编写变量名或其他表达式来进行即时求值并插入到最终输出中。 ```python name = "Alice" age = 30 greeting = f"My name is {name}, and I am {age} years old." print(greeting) # 输出: My name is Alice, and I am 30 years old. ``` 这种语法简洁明了,在处理动态数据时尤为有用[^1]。 #### 处理不同类型的数据混合拼接 如果尝试直接通过 `+` 符号把整数和其他类型的数值同字符串相加,则会引发错误;此时可以通过转换函数如 `str()`, 或采用上述提到的各种灵活多变的方式来实现安全有效的组合[^2].
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值