CH343(重要)
ESP32-S3 WROOM 使用 CH343 芯片下载代码。因此,在使用前,需要在电脑上安装 CH343 驱动程序。
检查 CH343 是否已安装
- 使用 USB 数据线将电脑和 ESP32-S3 WROOM 连接起来。
- 打开“设备管理器”,如果电脑已安装 CH343,可以看到“USB-Enhanced-SERIAL CH343 (COMx)”。
安装 CH343
- 首先,下载 CH343 驱动程序,点击www.wch-ic.com/search?t=al…根据操作系统下载相应的驱动程序。
- 双击“CH343SER.EXE”。
- 点击“安装”,等待安装完成。
- 安装成功。关闭所有接口。
编程软件
Thonny 是一个免费的开源软件平台,它体积小巧、界面简洁、操作简单且功能丰富,是 Python 初学者的理想 IDE。
Thonny 支持多种操作系统,包括 Windows、Mac OS、Linux。
下载 Thonny
Thonny 官方网站:thonny.org
Thonny 的开源代码库:github.com/thonny/thon…
请按照官方网站的说明安装 Thonny,或点击以下链接下载安装。
(请根据操作系统选择合适的选项。)
| 操作系统 | 下载链接/方法 |
|---|---|
| Windows | github.com/thonny/thon… |
| Mac OS | github.com/thonny/thon… |
勾选“创建桌面图标”,即可在桌面上生成快捷方式,方便稍后打开 Thonny。
当看到如下所示的界面时,Thonny 就已成功安装。
Thonny 的基本配置
点击Thonny的桌面图标,即可看到如下界面:
烧录 Micropython 固件
要在 ESP32S3 上运行 Python 程序,需要先将固件烧录到 ESP32-S3 中。
下载Micropython固件
microPython 官方网站:micropython.org/
ESP32S3 的 microPython 固件列表网页:micropython.org/download/ES…
烧录 Micropython 固件(重要)
使用 USB 数据线将电脑和 ESP32-S3 连接起来。
输入“python window.py”。Micropython固件将自动烧录到ESP32S3中。
import os
import sys
import time
os.system("python esptool/esptool.py --chip esp32s3 erase_flash")
os.system("python esptool/esptool.py --chip esp32s3 --baud 2000000 write_flash -z 0 ESP32_GENERIC_S3-SPIRAM_OCT-20250809-v1.26.0.bin")
完成后的效果如图所示。
测试代码
测试 Shell 命令
确保 ESP32S3 已烧录固件并通过数据线连接到计算机。运行 Thonny。点击“运行”并选择“配置解释器”。
按照下图进行配置。注意,不同系统的 USB 增强型串口端口号可能不同,请根据实际情况选择。配置完成后,点击“确定”。
配置完成后,每次打开 Thonny 时,它都会与 ESP32S3 通信。界面如下所示。
在“Shell”中输入“print(123)”,然后按回车键。
在线运行
ESP32-S3 在线运行时需要连接到计算机。用户可以使用 Thonny 编写和调试程序。
- 打开 Thonny 并点击“打开…”。
- 在新弹出的窗口中,单击“这台电脑”。
在新对话框中,选择“HelloWorld.py”。
点击“运行当前脚本”执行程序,“ Hello World ”将在“ Shell ”中打印出来。
离线运行(重要)
ESP32-S3 复位后,首先运行根目录下的 boot.py 文件,然后运行 main.py 文件,最后进入“Shell”界面。因此,为了使 ESP32-S3 在复位后能够执行用户编写的程序,需要在 boot.py 文件中添加一个引导程序来执行用户的代码。
双击boot.py,用于使“MicroPython设备”中的程序能够离线运行。
#!/opt/bin/lv_micropython
import uos as os
import uerrno as errno
iter = os.ilistdir()
IS_DIR = 0x4000
IS_REGULAR = 0x8000
while True:
try:
entry = next(iter)
filename = entry[0]
file_type = entry[1]
if filename == 'boot.py':
continue
else:
print("===============================")
print(filename,end="")
if file_type == IS_DIR:
print(", File is a directory")
print("===============================")
else:
print("\n===============================")
#print("Contents:")
#with open(filename) as f:
# for line in enumerate(f):
# print("{}".format(line[1]),end="")
#print("")
exec(open(filename).read(),globals())
except StopIteration:
break
如果希望编写的程序离线运行,需要将 boot.py 文件以及代码上传到“MicroPython 设备”,然后按下 ESP32S3 的复位键。选择boot.py,右键单击并选择“上传到根目录(/)”。
同样地,将“HelloWorld.py”上传到“MicroPython 设备”。
按下重置键,在下图所示的方框中,您可以看到代码已执行。
Thonny Common 操作
将代码上传到 ESP32S3
每次 ESP32-S3 重启时,如果根目录中存在 boot.py 文件,它将首先执行此代码。
选择Blink.py,右键单击鼠标并选择“上传到/”,将代码上传到ESP32S3的根目录。
from time import sleep_ms
from machine import Pin
led=Pin(2,Pin.OUT) #create LED object from pin2,Set Pin2 to output
try:
while True:
led.value(1) #Set led turn on
sleep_ms(1000)
led.value(0) #Set led turn off
sleep_ms(1000)
except:
pass
将代码下载到计算机
在“MicroPython 设备”中选择“boot.py”,右键单击选择“下载到…”将代码下载到计算机。
从 ESP32S3 的根目录中删除文件
在“MicroPython 设备”中选择“boot.py”,右键单击它并选择“删除”以从 ESP32S3 的根目录中删除“boot.py”。
从计算机目录中删除文件
右键单击它并选择“移到回收站”将其删除。
创建并保存代码
点击“文件”->“新建”创建并编写代码。
点击菜单栏上的“保存”。可以将代码保存到计算机或 ESP32S3 中。
选择“MicroPython 设备”,在新弹出的窗口中输入“main.py”,然后单击“确定”。
可以看到代码已上传到 ESP32S3。
断开并重新连接 USB 电缆,可以看到 LED 灯亮一秒钟,然后熄灭一秒钟,如此循环往复。
退出离线模式
如果要退出离线操作模式,可以在 shell 中同时按下 Ctrl+C,让 ESP32-S3 退出离线操作模式。
GPIO相关说明
ESP32S3 有四个跳线引脚:GPIO0、GPIO45、GPIO46、GPIO3。
当芯片的系统复位(上电复位、RTC 看门狗复位、欠压复位)解除后,连接引脚会采样电平并将其存储在锁存器中,值为“0”或“1”,并保持该值直到芯片断电或关闭。
每个跳线引脚都连接到内部上拉/下拉电阻。当连接到高阻抗外部电路或未连接外部电路时,跳线引脚的默认输入电平将由内部弱上拉/下拉电阻决定。要改变跳线引脚的电平,用户可以连接外部上拉/下拉电阻,或者在ESP32-S3上电复位解除时,使用主机MCU的GPIO来控制跳线引脚的电平。
释放复位时,连接引脚的功能与普通引脚相同。
以下是上电时这四个跳线引脚的默认配置及其在相应配置下的功能。
PSRAM 引脚
ESP32-S3 WROOM 开发板上的模块采用 ESP32-S3R8 芯片,并配备 8MB 外部 Flash。使用 OPI PSRAM 时,请注意 ESP32-S3 WROOM 开发板上的 GPIO35-GPIO37 引脚不能用于其他用途。不使用 OPI PSRAM 时,开发板上的 GPIO35-GPIO37 引脚可用作普通 GPIO。
SD卡引脚
ESP32-S3 WROOM 开发板背面集成了一个 SD 卡插槽。可以使用 ESP32-S3 WROOM 的 GPIO38-GPIO40 引脚来驱动 SD 卡。
USB引脚
在 Micropython 中,GPIO19 和 GPIO20 用于 ESP32S3 的 USB 功能,因此不能用作其他功能!
摄像头引脚
使用 ESP32-S3 WROOM 的摄像头时,请检查其引脚。带下划线编号的引脚用于摄像头功能,如果想使用其他功能,请避免使用这些引脚。
| CAM_Pin | GPIO引脚 |
|---|---|
| SIOD | GPIO4 |
| SIOC | GPIO5 |
| CSI_VYSNC | GPIO6 |
| CSI_HREF | GPIO7 |
| CSI_Y9 | GPIO16 |
| XCLK | GPIO15 |
| CSI_Y8 | GPIO17 |
| CSI_Y7 | GPIO18 |
| CSI_PCLK | GPIO13 |
| CSI_Y6 | GPIO12 |
| CSI_Y2 | GPIO11 |
| CSI_Y5 | GPIO10 |
| CSI_Y3 | GPIO9 |
| CSI_Y4 | GPIO8 |