STM32F103ZET6-ESP8266驱动程序

2023-11-09

ESP8266-WIFI 模块如下图所示:

 WIFI 模块尺寸图如下图所示:

如果需要将此模块设计到自己产品内,可能需要参考这个尺寸值。 

WIFI模块插在开发板上,如下图所示:

从 WIFI 模块实物图中可以看到,WIFI 模块提供了一个 2*4 的外接管脚,让我们连接到自己的电路中控制,这 8 个管脚两两间距是 2.54mm。管脚功能定义如下:

VCC:3.3V 电源;

RST:ES8266 复位管脚,可做外部硬件复位使用;

CH_PD:使能管脚,高电平有效;

UTXD:串口发送管脚,与开发板上串口  的 RXD 相连;

URXD:串口接收管脚,与开发板上串口  的 TXD 相连;

GPIO0:GPIO0 为高电平代表从 FLASH 启动, GPIO0 为低电平代表进入系统升级状态,此时可以经过串口升级内部固件;

GPIO2:此管脚为 ESP8266 引出的一个 IO 口,这里我们不需要对此管脚操作;

GND:GND 管脚。

要使用基本功能,其实我们不需要了解这么多管脚,只需要使用 WIFI 模块的串口 UTXD、URXD管脚、RST 和 CH_PD 管脚即可。

ESP8266-WIFI 模块支持 STA/AP/STA+AP 三种工作模式。

STA 模式:ESP8266 模块通过路由器连接互联网,手机或电脑通过互联网实现对设备的远程控制;

AP 模式:默认模式 ATK_ESP8266 模块作为热点,实现手机或电脑直接与模块通信,实现局域网无线控制;

STA+AP 模式:两种模式的共存模式,即可以通过互联网控制可实现无缝切换,方便操作。

ESP8266-WIFI 模块仅在单连接状态,支持透传模式(TCP Client 透传和 UDP透传)。

ESP8266 常用指令:

ESP8266-WIFI 模块采用的是 AT 指令操作,ESP8266 的指令非常多,但是我们 不 需 要 全 部 掌 握 , 只 需 把 常 用 的 了 解 即 可。

基础 AT 指令如下图 所示:

WIFI 功能 AT 指令:

WIFI 功能 AT 指令如下图 所示:

 

了解了 WIFI 模块的 AT 指令格式及功能,下面我们就可以使用 STM32 串口与WIFI 模块串口进行通信了。

本次要实现 STA 模式的 TCP Client 透传。简单理解就是配置 WIFI 模块为 STA 模式,让 WIFI 模块连接路由器或者笔记本发出的 wifi,然后在网络调试助手上设置好连接 WIFI 的 IP 地址和端口,这时 STM32串口 2 发送的数据就可以经过 WIFI 模块传输到网络调试助手上显示,即实现了TCP Client 透传。

本实验所实现的功能:在局域网中,WIFI 模块配置为 STA 模式,做客户端,电 脑 做 服 务 端 , 客 户 端 往 服 务 端 不 断 发 数 据 , 每 间 隔 1 秒 发 送 一 串字符。

要实现此功能程序,首先要初始化 ESP8266-WIFI 模块所用的 IO 口及时钟,其中包括串口配置,初始化后即进入 STA 模式透传,配置好 STA 模式,连接由电脑或路由器发出的 wifi 后,开始传输数据。

(1)修改 WIFI 名称、密码及 IP

(2)设置串口调试助手与网络调试助手

将串口调试助手波特率设置为 115200,数据位 8,停止位 1。

然后打开网络调试助手,选择协议类型为 TCP Server,本地 IP 地址和端口设置为前面宏定义配置的 IP 地址及端口,选择开始监听。

ESP8266完整代码获取地址:ESP8266.zip-嵌入式文档类资源-CSDN下载

 

 

 

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

STM32F103ZET6-ESP8266驱动程序 的相关文章

  • GNU Arm Cortex m4 上的 C++ 异常处理程序与 freertos

    2016 年 12 月更新现在还有一个关于此行为的最小示例 https community nxp com message 862676 https community nxp com message 862676 我正在使用带有 free
  • arm64 汇编:LDP 与 LD4 执行时间

    假设我想用连续内存位置的值加载四个连续的 aarch64 向量寄存器 一种方法是 ldp q0 q1 x0 ldp q2 q3 x0 32 根据ARM优化指南 https static docs arm com uan0016 a cort
  • ARM 汇编分支到寄存器或内存内部的地址

    我想知道在 ARM 汇编中我可以使用哪条指令分支到存储在某个内存地址中的地址或标签 例如 我们可以使用B LABEL来跳转到LABEL 但现在目的地只能在运行时知道 并且它存储在某个已知的内存位置 是否有类似 B 地址 的东西 Thanks
  • 哪些变量类型/大小在 STM32 微控制器上是原子的?

    以下是 STM32 微控制器上的数据类型 http www keil com support man docs armcc armcc chr1359125009502 htm http www keil com support man d
  • C 嵌入式应用程序中 time() 函数的问题

    我在用time 在 ARM 微控制器上 处理器一到达此函数就会重新启动 奇怪的是 当我处于调试模式时 代码运行得很好 但一旦我想将其应用到独立模式 我就会遇到重置 我是否忽略了什么 这个功能有替代品吗 代码部分是这样的 include
  • 可以使用Visual Studio 2012构建ARM桌面程序吗?

    我正在使用 Visual Studio 2012 beta 我的桌面 win32 程序在 ARM 架构中编译得很好 升级到 Visual Studio 2012 RC 后 编译器无法工作并出现以下错误 不支持为 ARM 平台编译桌面应用程序
  • 为 ARM 交叉编译 zlib

    我尝试为arm poky linux gnueabi交叉编译zlib 但启动 make 时出现错误 zlib 1 2 11 AR HOST ar CC HOST gcc RANLIB HOST ranlib configure prefix
  • 如何在 Android 设备上运行 VS Code [重复]

    这个问题在这里已经有答案了 我有 Galaxy Tab S6 它具有替代笔记本电脑的很酷的功能 例如连接鼠标和键盘 但不幸的是它运行 Android 操作系统 并且没有很多开发应用程序可用于 Android 所以我想是否有一个选项可以在至少
  • ARM + gcc:不要使用一大块 .rodata 部分

    我想使用 gcc 编译一个程序 并针对 ARM 处理器进行链接时间优化 当我在没有 LTO 的情况下编译时 系统会被编译 当我启用 LTO 时 使用 flto 我收到以下汇编错误 错误 无效的文字常量 池需要更近 环顾网络 我发现这与我系统
  • 分析 Cortex-M7 (stm32f7) 上的 memcpy 性能

    简洁版本 从 GNU ARM 工具链中提取的 memcpy 的性能指标在 ARM Cortex M7 上对于不同的副本大小似乎差异很大 即使复制数据的代码始终保持不变 这可能是什么原因造成的 长版 我是使用 GNU Arm 工具链 11 2
  • 如何使用 Neon SIMD 将无符号字符转换为有符号整数

    如何转换变量的数据类型uint8 t to int32 t使用霓虹灯 我找不到执行此操作的任何内在因素 假设您想要将 16 x 8 位整数的向量转换为 4 个 4 x 32 位整数的向量 您可以通过首先解压缩为 16 位 然后再次解压缩为
  • 了解 ctags 文件格式

    我使用 Exhuberant ctags 来索引我的 c 项目中的所有标签 c project 是 Cortex M7 微控制器的嵌入式软件 结果是一个标签文件 我正在尝试阅读该文件并理解所写的内容 根据我找到的 ctags 和 Exhub
  • 在linux x86平台上学习ARM所需的工具[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我有一个 x86 linux 机器 在阅读一些关于 ARM 的各种信息时 我很好奇 现在我想花一些时间学
  • 在 Intel 机器上构建 Apple Silicon 二进制文件

    如何在 macOS 11 Intel 上编译 C 项目以在 Silicon 上运行 我当前的构建脚本很简单 configure make sudo make install 我尝试过使用 host and target标志与aarch64
  • AOSP 的“午餐”组合是什么意思?我需要选择什么?

    我是 Android 设备 ROM 开发的新手 无论如何 我现在正在为具有 64 位处理器的中国设备构建 AOSP 我按照 source android com 上的菜单进行操作 当我运行 午餐 命令时 终端显示 午餐菜单 选择一个组合 我
  • saber sd 如何在没有 SPL 的情况下直接从 uboot 启动

    sabre sd 基于 imx 6 最大内部 RAM 约为 150Kb 然而 uboot 足够大 可以容纳在这个空间中 在这个场景中事情是如何进行的 https community freescale com docs DOC 95015
  • ARM Chromebook 上的 Android 开发环境?

    我尝试了多次安装和使用安卓工作室 https developer android com studio index html on an ARM Chromebook C100P https archlinuxarm org platfor
  • arm64和armhf有什么区别?

    Raspberry Pi Type 3 具有 64 位 CPU 但其架构不是arm64 but armhf 有什么区别arm64 and armhf armhf代表 arm hard float 是给定的名称Debian 端口 https
  • 需要一些建议来开始在 ARM(使用 Linux)平台上编程

    我 也许 很快就会在托管 Linux 发行版的 ARM 平台上工作 我不知道哪个发行版 我知道该项目涉及视频流 但我无法告诉你更多信息 其实我只收到通知 还没见到任何人 我从来没有在这样的平台上工作过 所以我的想法是在项目开始之前进行测试
  • 如何在WinMobile6上启用ARMv6非对齐访问?

    ARMv6 引入了一个很棒的功能 未对齐的内存访问 这使得代码中的某些事情变得更加简单和更快 但微软只在winCE6中提供了API 现在大多数 PDA 都基于 WinMobile6 基于 CE 5 x 默认情况下禁用未对齐访问 我尝试在 C

随机推荐