CH340G上传程序到ESP8266-01(S)模块

文章目录

概要

使用USB TO TTL(CH340G)将Arduino将程序上传到ESP8266-01模块

ESP8266模块

外形尺寸

模块原理图

模块引脚功能

引脚序号 引脚名称 类型 引脚说明
1 GND 电源 接地
2 GPIO2 输入/输出 普通GPIO,用作I/O或LED控制
3 GPIO0 输入 烧录模式选择,低电平进入烧录模式,高电平正常运行
4 RX(GPIO3) 输入 串口接收(UART RX),连接到USB-TTL(如CH340)模块的TX
5 VCC 电源 3.3V供电,不能使用5V,否则可能损坏芯片
6 RST 输入 复位引脚,低电平(接地)时复位,松开后启动
7 CH_PD(EN) 输入 使能引脚,必须连接3.3V,否则芯片不能启动
8 TX(GPIO1) 输出 串口发送(UART TX),连接到USB-TTL(如CH340)模块的RX

CH340G模块

USB TO TTL

外形及其引脚

模块引脚功能

引脚序号 引脚名称 类型 引脚说明
1 GND 电源 公共接地端,直接连接到USB总线的地线
2 TXD 输出 串行数据输出
3 RXD 输入 串行数据输入
4 V3 电源 在3.3V电源电压时连接VCC输入外部电源 在5.0V电源电压时外接容量为0.1uF退藕电容
5 UD+ USB信号 直接连接到USB总线的D+数据线
6 UD- USB信号 直接连接到USB总线的D-数据线
7 XI 输入 晶体振荡器的输入,连接到晶体谐振器和负载电容器
8 XO 输出 晶体振荡器的输出,连接到晶体谐振器和负载电容器
9 CTS# 输入 MODEM联络输入信号,清除发送,低(高)有效
10 DSR# 输入 MODEM联络输入信号,数据装置就绪,低(高)有效
11 RI# 输入 MODEM联络输入信号,振铃提示,低(高)有效
12 DCD# 输入 MODEM联络输入信号,载波检测,低(高)有效
13 DTR# 输出 MODEM联络输入信号,数据终端就绪,低(高)有效
14 RTS# 输出 MODEM联络输入信号,请求发送,低(高)有效
15 R232 输入 辅助RS232使能,高有效,内置下拉
16 VCC 电源 正电源输入端,需外接0.1uF电源退藕电容

USB TO TTL引脚

引脚序号 引脚名称 类型 引脚说明
1 5V 电源 提供5V的电源输出,可以为一些需要5V供电的设备供电
2 VCC 电源 通产也是电源引脚,在一些情况下与5V类似,用于提供电源,但具体电压可能根据模块设计有所不同
3 3V3 电源 蹄冻3.3V的电源输出,用于给工作电压为3.3V的芯片或模块供电
4 TXD 输出 数据发送引脚,用于将模块的数据发送出去,在与其他设备通信时,将数据从该模块传向其他设备
5 RXD 输入 数据接收引脚,用于接收来自其他设备的数据
6 GND 电源 接地引脚,作为电路的参考零电位,用于建立电路的电位基准

程序上传

USB TO TTL连接到计算机USB接口,在设备管理器中会出现串行端口

接线

引脚序号 ESP8266 USB TO TTL 备注
1 GND GND
2 GPIO2
3 GPIO0 GND
4 RXD TX
5 VCC 3V3
6 RST 先接到 **GND** 短暂接触一下(复位设备) 立即断开,使其进入烧录模式
7 CH_PD 3V3
8 TXD RX

Arduino IDE 安装ESP8266开发板

Arduino IDE 开发板

需要正确选择ESP8266对应的开发板及其串行端口

上传失败

使用Arduino IDE编写ESP8266程序后编译上传,若出现下面错误,可能的情况有

  • 接线不正确

  • 没有正确的复位设备,在使用RST短接GND的瞬间会看到ESP8266板子的蓝灯会闪烁

    . Variables and constants in RAM (global, static), used 31260 / 80192 bytes (38%)
    ║ SEGMENT BYTES DESCRIPTION
    ╠══ DATA 1500 initialized variables
    ╠══ RODATA 2344 constants
    ╚══ BSS 27416 zeroed variables
    . Instruction RAM (IRAM_ATTR, ICACHE_RAM_ATTR), used 61043 / 65536 bytes (93%)
    ║ SEGMENT BYTES DESCRIPTION
    ╠══ ICACHE 32768 reserved space for flash instruction cache
    ╚══ IRAM 28275 code in IRAM
    . Code in flash (default, ICACHE_FLASH_ATTR), used 303024 / 1048576 bytes (28%)
    ║ SEGMENT BYTES DESCRIPTION
    ╚══ IROM 303024 code in flash
    esptool.py v3.0
    Serial port COM5
    Connecting......................................_____
    A fatal esptool.py error occurred: Failed to connect to ESP8266: Timed out waiting for packet header

上传成功

若没有问题,则会出现下面上传信息

. Variables and constants in RAM (global, static), used 31260 / 80192 bytes (38%)
║   SEGMENT  BYTES    DESCRIPTION
╠══ DATA     1500     initialized variables
╠══ RODATA   2344     constants       
╚══ BSS      27416    zeroed variables
. Instruction RAM (IRAM_ATTR, ICACHE_RAM_ATTR), used 61043 / 65536 bytes (93%)
║   SEGMENT  BYTES    DESCRIPTION
╠══ ICACHE   32768    reserved space for flash instruction cache
╚══ IRAM     28275    code in IRAM    
. Code in flash (default, ICACHE_FLASH_ATTR), used 303024 / 1048576 bytes (28%)
║   SEGMENT  BYTES    DESCRIPTION
╚══ IROM     303024   code in flash   
esptool.py v3.0
Serial port COM5
Connecting....
Chip is ESP8266EX
Features: WiFi
Crystal is 26MHz
MAC: 48:e7:29:6c:a6:4e
Uploading stub...
Running stub...
Stub running...
Configuring flash size...
Auto-detected Flash size: 1MB
Compressed 339296 bytes to 244489...
Writing at 0x00000000... (6 %)
Writing at 0x00004000... (13 %)
Writing at 0x00008000... (20 %)
Writing at 0x0000c000... (26 %)
Writing at 0x00010000... (33 %)
Writing at 0x00014000... (40 %)
Writing at 0x00018000... (46 %)
Writing at 0x0001c000... (53 %)
Writing at 0x00020000... (60 %)
Writing at 0x00024000... (66 %)
Writing at 0x00028000... (73 %)
Writing at 0x0002c000... (80 %)
Writing at 0x00030000... (86 %)
Writing at 0x00034000... (93 %)
Writing at 0x00038000... (100 %)
Wrote 339296 bytes (244489 compressed) at 0x00000000 in 21.5 seconds (effective 126.2 kbit/s)...
Hash of data verified.

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

上传程序成功后会如果卡在了Hard resetting via RTS pin...的解决方案

  • 断开 **GPIO0 → GND** 连接(如果仍然接着)
  • 短接 **RST → GND**(复位),然后松开

正常工作

引脚序号 引脚名称 类型 引脚说明
1 GND 电源 接地
5 VCC 电源 3.3V供电,不能使用5V,否则可能损坏芯片
7 CH_PD(EN) 输入 使能引脚,必须连接3.3V,否则芯片不能启动

以上供电选择可以使用USB TO TTL、Arduino UNO R4 Minima或者其他外部3.3V电源均可,连接以上ESP8266引脚,可以使用手机或PC搜索到Arduino程序中写的WiFi名称并进行连接,使用USB TO TTL好像有点问题

初此之外,还可以连接USB TO TTL的TXD、RXD之后,若上传到ESP8266的程序中有输出到串口监视器中的内容的代码,则可以连接Arduino IDE的串口监视器可以看到对应的输出信息,需要注意的时波特率需要和程序中的一致

相关推荐
生活最重要(ง •̀_•́)ง3 天前
[ESP32:Vscode+PlatformIO]新建工程 常用配置与设置
vscode·esp32·arduino·platformio
抠脚学代码16 天前
ESP8266 MQTT服务器+阿里云
mqtt·阿里云·esp8266
Grayson_Zheng1 个月前
如何用 ESP32-CAM 做一个实时视频流服务器
esp32·arduino·camera·电子信息
无敌海苔咪1 个月前
VsCode对Arduino的开发配置
ide·vscode·编辑器·arduino
xachary1 个月前
Arduino 小白的 DIY 空气质量检测仪(5)- OLED显示模块、按钮模块
物联网·嵌入式·arduino
_古_凡_1 个月前
【LVGL】给SquareLineStudio导出的Arduino工程添加物理按键
单片机·arduino·lvgl·esp8266
委员1 个月前
Arduino中借助LU-ASR01实现语音识别
单片机·嵌入式·语音识别·arduino·nodemcu·lu-asr01·天问block
阿昊真人2 个月前
Arduino HC05 蓝牙模块 实现手机与单片机下发通讯(遥控)
单片机·arduino
Frank学习路上2 个月前
【Arduino】ESP8266获取NTP时间及连接MQTT实现远程控制示例
c++·mqtt·arduino·esp8266