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

文章目录

    • 概要
    • ESP8266模块
      • 外形尺寸
      • 模块原理图
      • 模块引脚功能
    • CH340G模块
      • 外形及其引脚
      • 模块引脚功能
      • USB TO TTL引脚
    • 程序上传
      • 接线
      • Arduino IDE 安装ESP8266开发板
      • Arduino IDE 开发板
      • 上传失败
      • 上传成功
    • 正常工作

概要

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

ESP8266模块

外形尺寸

在这里插入图片描述

模块原理图

在这里插入图片描述

模块引脚功能

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

CH340G模块

USB TO TTL

外形及其引脚

在这里插入图片描述

模块引脚功能

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

USB TO TTL引脚

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

程序上传

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

接线

引脚序号ESP8266USB TO TTL备注
1GNDGND
2GPIO2
3GPIO0GND
4RXDTX
5VCC3V3
6RST先接到 **GND** 短暂接触一下(复位设备)
立即断开,使其进入烧录模式
7CH_PD3V3
8TXDRX

Arduino IDE 安装ESP8266开发板

  • 将https://arduino.esp8266.com/stable/package_esp8266com_index.json复制到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**(复位),然后松开

正常工作

引脚序号引脚名称类型引脚说明
1GND电源接地
5VCC电源3.3V供电,不能使用5V,否则可能损坏芯片
7CH_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的串口监视器可以看到对应的输出信息,需要注意的时波特率需要和程序中的一致
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/12559.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

游戏引擎 Unity - Unity 下载与安装

Unity Unity 首次发布于 2005 年,属于 Unity Technologies Unity 使用的开发技术有:C# Unity 的适用平台:PC、主机、移动设备、VR / AR、Web 等 Unity 的适用领域:开发中等画质中小型项目 Unity 适合初学者或需要快速上手的开…

AIGC(生成式AI)试用 20 -- deepseek 初识

>> 基本概念 Ollama -- 运行大模型,管理运行AI大模型的工具,用来安装布置DeepSeek https://ollama.com/ , Get up and running with large language models. AnythingLLM -- 大模型增强应用,GUI大模型交互程序 Download AnythingLLM …

STM32 DMA+AD多通道

接线图 代码配置 ADC单次扫描DMA单次转运模式 uint16_t AD_Value[4]; //DMAAD多通道 void DMA_Config(void) {//定义结构体变量 GPIO_InitTypeDef GPIO_InitStructure;//定义GPIO结构体变量 ADC_InitTypeDef ADC_InitStructure; //定义ADC结构体变量 DMA_InitTypeDef DMA_In…

【Java】位图 布隆过滤器

位图 初识位图 位图, 实际上就是将二进制位作为哈希表的一个个哈希桶的数据结构, 由于二进制位只能表示 0 和 1, 因此通常用于表示数据是否存在. 如下图所示, 这个位图就用于标识 0 ~ 14 中有什么数字存在 可以看到, 我们这里相当于是把下标作为了 key-value 的一员. 但是这…

【工欲善其事】利用 DeepSeek 实现复杂 Git 操作:从原项目剥离出子版本树并同步到新的代码库中

文章目录 利用 DeepSeek 实现复杂 Git 操作1 背景介绍2 需求描述3 思路分析4 实现过程4.1 第一次需求确认4.2 第二次需求确认4.3 第三次需求确认4.4 V3 模型:中间结果的处理4.5 方案验证,首战告捷 5 总结复盘 利用 DeepSeek 实现复杂 Git 操作 1 背景介绍…

BGP路径属性

公认必遵循 BGP必须都能识别,且必须发送报文必须包含 Origin:起源属性,I,E,?三种,I是BGP通过IGP协议学到的路由(比如ospf,isis,rip),E是从EGP协议学到的&am…

Vue 图片引用方式详解:静态资源与动态路径访问

目录 前言1. 引用 public/ 目录2. assets/ 目录3. 远程服务器4. Vue Router 动态访问5. 总结6. 扩展(图片不显示) 前言 🤟 找工作,来万码优才:👉 #小程序://万码优才/r6rqmzDaXpYkJZF 在 Vue 开发中&#x…

【网络编程】Java高并发IO模型深度指南:BIO、NIO、AIO核心解析与实战选型

​​ 目录 一、引言1.1 本文目标与适用场景1.2 什么是IO模型?阻塞 IO 模型非阻塞 IO 模型IO 多路复用模型信号驱动 IO 模型异步 IO 模型 二、基础概念解析2.1 IO模型的分类与核心思想IO模型的分类核心思想分类对比与选择依据技术示意图 2.2 同步 vs 异步 | 阻塞 vs…

基序和纯度分数的计算

以下对这两个概念的详细解释: 基序 纯度分数 PWM矩阵的来源 为什么会有PWM矩阵? 一个特定的转录因子(TF)的结合位点的基序(motif)并不是唯一的。实际上,TF结合位点通常具有一定的序列变异性&a…

算法日记11:SC63(离散化)

一、题目 二、题解 法一:前缀和(会炸) 对于这道题目,我们的第一个朴素想法就是用前缀和来进行简化操作,这个思路非常简单,就是前缀和的标准模板题,代码如下 void solve() {int n,q;cin>&g…

w185客户关系管理系统

🙊作者简介:多年一线开发工作经验,原创团队,分享技术代码帮助学生学习,独立完成自己的网站项目。 代码可以查看文章末尾⬇️联系方式获取,记得注明来意哦~🌹赠送计算机毕业设计600个选题excel文…

[STM32 标准库]EXTI应用场景 功能框图 寄存器

一、EXTI 外部中断在嵌入式系统中有广泛的应用场景,如按钮开关控制,传感器触发,通信接口中断等。其原理都差不多,STM32会对外部中断引脚的边沿进行检测,若检测到相应的边沿会触发中断,在中断中做出相应的处…

Windows下怎么安装FFFmpeg呢?

在Windows下使用Open-webui报错,说Couldnt find ffmpeg or avconv,解决open-webui报错Couldn‘t find ffmpeg or avconv-CSDN博客于是尝试解决问题,那么Windows下怎么安装FFFmpeg呢? 尝试了两种方法。 第一种方法pip安装(失败&…

Hive on Spark优化

文章目录 第1章集群环境概述1.1 集群配置概述1.2 集群规划概述 第2章 Yarn配置2.1 Yarn配置说明2.2 Yarn配置实操 第3章 Spark配置3.1 Executor配置说明3.1.1 Executor CPU核数配置3.1.2 Executor内存配置3.1.3 Executor个数配置 3.2 Driver配置说明3.3 Spark配置实操 第4章 Hi…

【OMCI实践】ONT上线过程的omci消息(三)

引言 在上一篇文章【OMCI实践】ONT上线过程的omci消息(二)-CSDN博客中,主要介绍了ONT上线过程的OMCI交互的第一个阶段和第二个阶段omci消息,本篇介绍第二个阶段剩余的OMCI消息涉及到的受管实体(ME)的属性。…

保姆级教程Docker部署Zookeeper官方镜像

目录 1、安装Docker及可视化工具 2、创建挂载目录 3、运行Zookeeper容器 4、Compose运行Zookeeper容器 5、查看Zookeeper运行状态 6、验证Zookeeper是否正常运行 1、安装Docker及可视化工具 Docker及可视化工具的安装可参考:Ubuntu上安装 Docker及可视化管理…

【数据结构】栈与队列

栈 栈的概念及结构 栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。 压栈:栈的插入操作叫做进栈/压栈/入栈&…

安全实验作业

一 拓扑图 二 要求 1、R4为ISP,其上只能配置IP地址;R4与其他所有直连设备间均使用共有IP 2、R3-R5-R6-R7为MGRE环境,R3为中心站点; 3、整个OSPF环境IP基于172.16.0.0/16划分; 4、所有设备均可访问R4的环回&#x…

e2studio开发RA4M2(6)----GPIO外部中断(IRQ)配置

e2studio开发RA4M2.6--GPIO外部中断(IRQ)配置 概述视频教学样品申请硬件准备参考程序源码下载新建工程工程模板保存工程路径芯片配置工程模板选择时钟设置SWD调试口设置GPIO口配置按键中断配置中断回调函数主程序 概述 GPIO(通用输入/输出&a…

排序算法--快速排序

快速排序是高效的排序算法,平均时间复杂度为 O(nlog⁡n),适合大规模数据排序。 1.挖坑法 2左右指针法 3.前后指针法 // 交换两个元素的值 void swap(int* a, int* b) {int temp *a;*a *b;*b temp; }// 分区函数,返回分区点的索引 int par…