Arduino中增加修改ESP32烧录固件的速度

在Arduino中,默认对ESP32-S3芯片的烧录速度只支持115200、230400、460800、921600这几种速率。只能够在 工具->Upload Speed中选择这些。

有的时候烧录还是觉得太慢了。那么能否更快一些呢?

首先你的USB转串口芯片要支持高速的。常见的芯片速率支持如下:看看你的芯片是否支持。我的芯片是CH343G

然后,由于我是MacOS,打开路径

~/Library/Arduino15/packages/esp32/hardware/esp32/2.0.11/boards.txt

Windows系统的话,请自己寻找类似的这个文件了。还有这个是Arduino1.8.19版本,如果你用的Arduino 2.X版本的话,路径可能不一样。

找到这个文件中的esp32s3.menu.UploadSpeed的位置,增加你想要的速度,我增加了1000000、1500000、2000000、3000000、4000000的速度。

esp32s3.menu.UploadSpeed.4000000=4000000
esp32s3.menu.UploadSpeed.4000000.upload.speed=4000000
esp32s3.menu.UploadSpeed.3000000=3000000
esp32s3.menu.UploadSpeed.3000000.upload.speed=3000000
esp32s3.menu.UploadSpeed.2000000=2000000
esp32s3.menu.UploadSpeed.2000000.upload.speed=2000000
esp32s3.menu.UploadSpeed.1500000=1500000
esp32s3.menu.UploadSpeed.1500000.upload.speed=1500000
esp32s3.menu.UploadSpeed.1000000=1000000
esp32s3.menu.UploadSpeed.1000000.upload.speed=1000000
esp32s3.menu.UploadSpeed.921600=921600
esp32s3.menu.UploadSpeed.921600.upload.speed=921600
esp32s3.menu.UploadSpeed.115200=115200
esp32s3.menu.UploadSpeed.115200.upload.speed=115200
esp32s3.menu.UploadSpeed.256000.windows=256000
esp32s3.menu.UploadSpeed.256000.upload.speed=256000
esp32s3.menu.UploadSpeed.230400.windows.upload.speed=256000
esp32s3.menu.UploadSpeed.230400=230400
esp32s3.menu.UploadSpeed.230400.upload.speed=230400
esp32s3.menu.UploadSpeed.460800.linux=460800
esp32s3.menu.UploadSpeed.460800.macosx=460800
esp32s3.menu.UploadSpeed.460800.upload.speed=460800
esp32s3.menu.UploadSpeed.512000.windows=512000
esp32s3.menu.UploadSpeed.512000.upload.speed=512000

然后,重新打开Arduino的IDE后,就多了这些速度可选。

经过我的测试,大概4000000可以选择,更高的不行了。

然后试了下,烧录速度快了非常多,同一个项目做一下写入对比,使用4000000通讯速率,擦除3.3秒,写入3.4秒钟,如下:

项目使用了 540285 字节,占用了 (41%) 程序存储空间。最大为 1310720 字节。
全局变量使用了22224字节,(6%)的动态内存,余留305456字节局部变量。最大为327680字节。
esptool.py v4.5.1
Serial port /dev/cu.wchusbserial575B0415701
Connecting....
Chip is ESP32-S3 (revision v0.2)
Features: WiFi, BLE
Crystal is 40MHz
MAC: dc:da:0c:10:b5:a0
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 4000000
Changed.
Configuring flash size...
Erasing flash (this may take a while)...
Chip erase completed successfully in 3.3s
Compressed 14016 bytes to 9746...
Writing at 0x00000000... (100 %)
Wrote 14016 bytes (9746 compressed) at 0x00000000 in 0.1 seconds (effective 1017.7 kbit/s)...
Hash of data verified.
Compressed 3072 bytes to 146...
Writing at 0x00008000... (100 %)
Wrote 3072 bytes (146 compressed) at 0x00008000 in 0.0 seconds (effective 1761.9 kbit/s)...
Hash of data verified.
Compressed 8192 bytes to 47...
Writing at 0x0000e000... (100 %)
Wrote 8192 bytes (47 compressed) at 0x0000e000 in 0.0 seconds (effective 2615.0 kbit/s)...
Hash of data verified.
Compressed 540656 bytes to 340302...
Writing at 0x00010000... (4 %)
Writing at 0x000155de... (9 %)
Writing at 0x0001abd0... (14 %)
Writing at 0x00020451... (19 %)
Writing at 0x00025e40... (23 %)
Writing at 0x0002b3dd... (28 %)
Writing at 0x00030a44... (33 %)
Writing at 0x000363be... (38 %)
Writing at 0x0003b8c3... (42 %)
Writing at 0x00040ec0... (47 %)
Writing at 0x00046e51... (52 %)
Writing at 0x00054c74... (57 %)
Writing at 0x0005d949... (61 %)
Writing at 0x00063407... (66 %)
Writing at 0x00068de9... (71 %)
Writing at 0x0006e86a... (76 %)
Writing at 0x00074131... (80 %)
Writing at 0x00079406... (85 %)
Writing at 0x0007f7d0... (90 %)
Writing at 0x00089d74... (95 %)
Writing at 0x0008f596... (100 %)
Wrote 540656 bytes (340302 compressed) at 0x00010000 in 3.4 seconds (effective 1275.1 kbit/s)...
Hash of data verified.

Leaving...
Hard resetting via RTS pin...

如果没有修改速度的话,一般用使用的460800的速度写入对比具体如下,需要擦除4.8秒写入竟然要7.8秒:

项目使用了 540285 字节,占用了 (41%) 程序存储空间。最大为 1310720 字节。
全局变量使用了22224字节,(6%)的动态内存,余留305456字节局部变量。最大为327680字节。
esptool.py v4.5.1
Serial port /dev/cu.wchusbserial575B0415701
Connecting....
Chip is ESP32-S3 (revision v0.2)
Features: WiFi, BLE
Crystal is 40MHz
MAC: dc:da:0c:10:b5:a0
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 460800
Changed.
Configuring flash size...
Erasing flash (this may take a while)...
Chip erase completed successfully in 4.8s
Compressed 14016 bytes to 9746...
Writing at 0x00000000... (100 %)
Wrote 14016 bytes (9746 compressed) at 0x00000000 in 0.3 seconds (effective 377.6 kbit/s)...
Hash of data verified.
Compressed 3072 bytes to 146...
Writing at 0x00008000... (100 %)
Wrote 3072 bytes (146 compressed) at 0x00008000 in 0.0 seconds (effective 1365.3 kbit/s)...
Hash of data verified.
Compressed 8192 bytes to 47...
Writing at 0x0000e000... (100 %)
Wrote 8192 bytes (47 compressed) at 0x0000e000 in 0.0 seconds (effective 2273.4 kbit/s)...
Hash of data verified.
Compressed 540656 bytes to 340306...
Writing at 0x00010000... (4 %)
Writing at 0x000155dc... (9 %)
Writing at 0x0001abcd... (14 %)
Writing at 0x0002044f... (19 %)
Writing at 0x00025e3f... (23 %)
Writing at 0x0002b3da... (28 %)
Writing at 0x00030a42... (33 %)
Writing at 0x000363be... (38 %)
Writing at 0x0003b8bc... (42 %)
Writing at 0x00040ebc... (47 %)
Writing at 0x00046e4c... (52 %)
Writing at 0x00054c58... (57 %)
Writing at 0x0005d947... (61 %)
Writing at 0x00063404... (66 %)
Writing at 0x00068de7... (71 %)
Writing at 0x0006e862... (76 %)
Writing at 0x0007412e... (80 %)
Writing at 0x00079403... (85 %)
Writing at 0x0007f7cd... (90 %)
Writing at 0x00089d72... (95 %)
Writing at 0x0008f593... (100 %)
Wrote 540656 bytes (340306 compressed) at 0x00010000 in 7.8 seconds (effective 551.2 kbit/s)...
Hash of data verified.

Leaving...
Hard resetting via RTS pin...

以上。用更高的速度写入后,只要不出错,可以大大提高的烧录的效率。速度提升不止一半。本来Arduino编译就慢点不行,烧录也慢等的挺讨厌。

### ESP32-C3 Arduino 烧录固件教程 #### 准备工作 为了顺利地将固件烧录ESP32-C3,需准备如下工具和材料: - 计算机一台,安装有Windows操作系统或其他支持的操作系统。 - USB转TTL串口线一根,用于连接计算机与ESP32-C3开发板。 - 安装好PlatformIO插件的Visual Studio Code编辑器。 #### 设置Arduino IDE环境 按照官方指南,在Arduino IDE中添加ESP32平台支持。具体操作是在首选项中的附加开发板管理器网址处输入指定链接[^3]: ```plaintext https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_dev_index.json ``` 完成设置后,打开开发板管理器并安装`esp32`平台包。这一步骤确保了后续编译过程中所需的全部依赖库都已就绪。 #### 编写及上传代码至ESP32-C3 编写完毕待烧录程序之后,选择对应的开发板型号(例如`ESP32 Dev Module`),端口号通常会自动识别为当前可用的第一个COM端口;如果未被正确检测,则手动选取实际使用的串行接口名称如`COM11`[^1]。 对于使用VSCode配合PlatformIO的情况,创建新项目时应指明目标架构为ESP32系列MCU,并依据个人需求调整默认配置文件内的参数选项。确认无误后点击“Upload”按钮执行上载动作,此时软件将会调用底层命令行工具来处理整个过程,类似于下面这条指令所描述的行为模式: ```bash esptool.py --chip esp32 --port COM11 write_flash -z 0x0000 path/to/firmware.bin ``` 值得注意的是,上述路径应当替换成为本地存储设备上的确切位置,即包含已经构建好的二进制映像文件的实际地址。 #### 使用GPIO6和GPIO7进行AT指令通信 除了常规的数据传输功能外,ESP32-C3还允许利用特定引脚组合实现简单的控制逻辑——比如通过设定GPIO6和GPIO7的状态来进行基本的AT命令交互[^2]。不过这种应用场景相对特殊,一般情况下并不涉及此类高级特性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值