arduino烧录esp32-cam

文章讲述了作者在使用esp32-cam过程中遇到的烧录问题,先是通过底板尝试烧录,遇到权限错误,后改用ttl转USB模块成功烧录。详细说明了esp32-cam的组成,烧录步骤,以及遇到问题时的解决方法,包括ttl转USB的接线指南和烧录过程。

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

前言

我使用esp32-cam已经有两个星期了,两个星期都没能烧录进去,最后发现是底板的问题,在今天使用ttl转usb烧录成功并且可以使用了,我在这里就把我这两个星期踩到的坑和使用这几天使用这块板子的心得叭。

一、esp32-cam的组成

esp32-cam由底板和主板组成,主板搭载芯片(esp32-s),TF卡槽,摄像头(ov2640等)
详情请见:esp32-cam的组成及原理图

二、使用底板烧录

首先,如果你买了esp32-cam的主板和底板,那么你只需要将主板插到底板上面,如下图:
esp32-cam主板和底板的连接
然后只需要将线插入到电脑USB接口上,打开arduino IDE(我这里使用的是最新版2.1.1版本,其他版本和这个版本的操作差距不大,均可这样操作,arduino IDE安装地址),选择开发板型号(见下图):**

在这里插入图片描述

(如果没有这个,请重新安装esp32库,esp32库文件安装
如何判断是否连接上呢,打开电脑的设备管理器:
在这里插入图片描述
端口这里出现USB-SERIAL CH340即是连接成功
选择正确的端口号(我这里是COM4,按照自己电脑的端口号来选),然后点击上传按钮
在这里插入图片描述
如果出现如下报错:

A serial exception error occurred: Cannot configure port, something went wrong. Original message: PermissionError(13, '����ϵͳ�ϵ��豸û�з������á�', None, 31)
Note: This error originates from pySerial. It is likely not a problem with esptool, but with the hardware connection or drivers.
For troubleshooting steps visit: https://docs.espressif.com/projects/esptool/en/latest/troubleshooting.html
上传失败: 上传错误:exit status 1

则大概率是因为底板或者连接线有问题,请看我接下来的ttl转USB烧录方式。
如果没有出现以上报错的话,那就上传成功啦,在上传期间,按住底板的io0即可,当他提示让你按下RST按键,根据提示按下即可上传成功。

三、使用ttl转USB烧录

由于现在tb上我也经常买到坏的板子,这种底板损坏或是连接线损坏的事也已经见怪不怪了,那我们怎么解决呢,这时候我们就需要使用到ttl转USB模块了
请添加图片描述
**这里我不对ttl转USB模块做过多的解释了,如果有想了解的同学,可以看一看 ttl转USB模块

我们不需要底板,直接使用主板连接ttl转USB模块,具体接线请看下图:**
5V --------- 5V
GND --------- GND
TXD --------- UDR
RXD --------- UDT
io0 --------- GND(使用跳线帽将主板上的io0引脚和GND引脚相接)

成果如下图:

请添加图片描述

这样就可以啦,接着打开arduino IDE ,选择正确的型号,端口(型号,端口看上面使用底板烧录的型号和端口),点击上传,出现以下输出则是上传成功啦:

esptool.py v4.5.1
Serial port COM4
Connecting....
Chip is ESP32-D0WD-V3 (revision v3.0)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
MAC: b0:a7:32:f1:c1:e0
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 460800
Changed.
Configuring flash size...
Flash will be erased from 0x00001000 to 0x00005fff...
Flash will be erased from 0x00008000 to 0x00008fff...
Flash will be erased from 0x0000e000 to 0x0000ffff...
Flash will be erased from 0x00010000 to 0x0004bfff...
Compressed 18960 bytes to 13073...
Writing at 0x00001000... (100 %)
Wrote 18960 bytes (13073 compressed) at 0x00001000 in 0.4 seconds (effective 367.0 kbit/s)...
Hash of data verified.
Compressed 3072 bytes to 137...
Writing at 0x00008000... (100 %)
Wrote 3072 bytes (137 compressed) at 0x00008000 in 0.0 seconds (effective 648.2 kbit/s)...
Hash of data verified.
Compressed 8192 bytes to 47...
Writing at 0x0000e000... (100 %)
Wrote 8192 bytes (47 compressed) at 0x0000e000 in 0.1 seconds (effective 1298.1 kbit/s)...
Hash of data verified.
Compressed 245472 bytes to 133575...
Writing at 0x00010000... (11 %)
Writing at 0x0001e5d4... (22 %)
Writing at 0x00024320... (33 %)
Writing at 0x000296c2... (44 %)
Writing at 0x0002ecc9... (55 %)
Writing at 0x0003793b... (66 %)
Writing at 0x0003ffa8... (77 %)
Writing at 0x000458b1... (88 %)
Writing at 0x0004b05f... (100 %)
Wrote 245472 bytes (133575 compressed) at 0x00010000 in 3.2 seconds (effective 613.4 kbit/s)...
Hash of data verified.

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

此时,按下主板反面有一个EST的按钮,按下之后即可运行代码惹。

四、总结

其实最大的问题就是底板很多有损坏或者根本没买底板的情况,我就是遇到了底板损坏但是自己不知道的问题,且网上ttl转USB与主板连接的方式有很多,我尝试了很多次才连接成功,这里连接操作参考的是ttl转USB连接主板这个视频。

### Arduino ESP32-CAM 使用教程 #### 硬件介绍 ESP32-CAM 是一款集成了 Wi-Fi 和蓝牙功能的微控制器模块,专为物联网应用设计。该模块配备了 OV2640 摄像头接口,能够捕捉图像并传输至网络服务器或其他设备[^1]。 除了摄像头外,ESP32-CAM 还具备丰富的外围资源: - **USB转串口芯片**:采用CH340G USB-to-UART桥接器实现电脑与ESP32-CAM之间的通信连接。 - **按键配置**:提供RESET按钮用于重启系统;BOOT按钮辅助进入固件烧录模式。 - **电源管理**:内置稳压电路确保稳定供电给整个模块工作所需电压电流水平。 - **状态指示灯**:通过LED显示当前的工作状况以便于调试观察[^3]。 #### 开发环境搭建 为了方便开发者快速上手,在Arduino IDE中设置好相应的开发工具链至关重要。按照官方指南完成ESP32平台支持包安装后即可编写上传代码到目标板子上面执行各种任务了。 ```bash # 安装ESP32平台支持包命令行方式(需先启动Arduino IDE) boardsmanager.install esp32 ``` #### 编程指导 当涉及到具体的编程实践时,可以利用现成的例子来学习如何操作不同的组件。比如控制伺服电机转动角度、发送HTTP请求获取网页内容或是建立简单的Web服务器等功能都很容易实现。下面给出一段简单示例代码展示怎样用ESP32-CAM配合BluetoothSerial库经由传统蓝牙协议点亮外部连接的一个LED灯泡[^4]。 ```cpp #include "BluetoothSerial.h" // 创建 BluetoothSerial 对象实例化对象 BluetoothSerial SerialBT; const int ledPin = 2; // 设置 LED 所连引脚编号 void setup() { pinMode(ledPin, OUTPUT); if (!SerialBT.begin("ESP32CAM_BT")) { // 启动蓝牙服务端命名为"ESP32CAM_BT" Serial.println("蓝牙初始化失败"); while (true); // 如果开启不成功则陷入死循环等待重试 } } void loop() { if (SerialBT.available()) { // 当收到客户端消息时触发处理逻辑 char command = SerialBT.read(); switch(command){ case 'A': digitalWrite(ledPin,HIGH); break; case 'B': digitalWrite(ledPin,LOW ); break; } } } ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

解雨滨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值