前言

  • 学习正点原子提供的ESP8266例程,移植ESP8266驱动程序到HAL库并进行封装,方便在以后的学习工作中快速使用
  • 本文的目标是实现TCP透传

硬件环境

ATK-ESP8266模块

  1. 正点原子基于汇思瑞(HYSIRY)生产的ESP8266MOD模块(芯片:乐鑫ESP8266EX)
  2. 采用安信可修改版AT固件
  3. 波特率:115200
  4. AT指令集资料:乐鑫/安信可修改版
  5. ESP8266使用后lua esp8266 ha_ESP8266使用后lua


STM32F1精英板

  1. ATK-ESP8266直接连接到ATK MODULE排针
  2. ESP8266使用后lua esp8266 ha_TCP_02


  3. ESP8266使用后lua esp8266 ha_ESP8266使用后lua_03

  4. USART1作为用户输入输出
  5. ESP8266使用后lua esp8266 ha_IP_04

  6. 引脚连接

ATK-ESP8266模块

STM32F1精英板

TXD

PB11(UART3_RX)

RXD

PB10(UART3_TX)

RST

PA4

IO_0

PA15


软件部分

开发环境

  • STM32CubeIDE

相关软件

  • NetAssist(网络调试助手)
  • Serial Port Utility(串口调试助手)

ESP8266功能介绍

工作模式

  • STA模式:通过路由器连接到广域网
  • AP模式:作为WIFI热点,建立局域网
  • STA+AP模式:两种模式共存(广域网,局域网皆可连接访问)

AT指令
指令参数和响应请参考:安信可修改版

  1. 基础指令

指令

描述

AT

测试指令

AT+RST

重启模块

AT+GMR

查看版本信息

ATE

开关回显功能

AT+RESTORE

恢复出厂设置

AT+UART

设置串口配置

  1. WIFI指令

指令

描述

AT+CWMODE

选择 WIFI 应用模式

AT+CWJAP

加入 AP

AT+CWLAP

列出当前可用 AP

AT+CWQAP

退出与 AP 的连接

AT+CWSAP

设置 AP 模式下的参数

AT+CWLIF

查看已接入设备的 IP

AT+CWDHCP

设置 DHCP 开关

AT+CWAUTOCONN

设置 STA 开机自动连接到 WIFI

AT+CIPSTAMAC

设置 STA 的 MAC 地址

AT+CIPAPMAC

设置 AP 的 MAC 地址

AT+CIPSTA

设置 STA 的 IP 地址

AT+CIPAP

设置 AP 的 IP 地址

AT+SAVETRANSLINK

保存透传连接到 Flash

AT+CWSMARTSTART

启动智能连接

AT+CWSMARTSTOP

停止智能连接

  1. TCP/IP工具箱

指令

描述

AT+CIPSTATUS

获得连接状态

AT+CIPSTART

建立 TCP 连接或注册 UDP 端口号

AT+CIPSEND

发送数据

AT+CIPCLOSE

关闭 TCP 或 UDP

AT+CIFSR

获取本地 IP 地址

AT+CIPMUX

启动多连接

AT+CIPSERVER

配置为服务器

AT+CIPMODE

设置模块传输模式

AT+CIPSTO

设置服务器超时时间

AT+CIUPDATE

网络升级固件

AT+PING

PING 命令

  1. SYS工具箱

指令

描述

AT+CSYSWDTENABLE

使能看门狗

AT+CSYSWDTDISABLE

关闭看门狗

AT+CSYSWDTCLEAR

清零看门狗

AT+CSYSHEAP

获取剩余RAM大小

  1. IO工具箱

指令

描述

AT+CIOBAUD

设置串口配置

AT+CIOADC

读取ADC

AT+CIOREAD

读取IO状态

AT+CIOWRITE

设置IO状态


TCP透传具体实现步骤

1. 设置WIFI模式为STA模式
发送:AT+CWMODE=1\r\n
响应:OK\r\n
2. 连接路由器
发送:AT+CWJAP="&ssid","&password"\r\n
响应:OK\r\n
3. 查询模块IP
发送:AT+CIFSR\r\n
响应:192.168.xxx.xxx\r\n
4. 建立TCP连接
发送:AT+CIPSTART=“TCP”,"&address",&port\r\n
响应:CONNECT\r\nOK\r\n
5. 透传模式使能
发送:AT+CIPMODE=1\r\n
响应:OK\r\n
6. 开始透传
发送:AT+CIPSEND\r\n
响应:无
7. 关闭透传
发送:+++

STM32CUBE配置

RCC配置

选择外部8MHz晶振

ESP8266使用后lua esp8266 ha_ESP8266_05

SYS配置

开启SW调试功能

ESP8266使用后lua esp8266 ha_看门狗_06

USART1和USART3配置

USART1用来作用户输入输出,USART3用来与ESP8266进行通信。

这里将两个串口采取相同的参数设置

模式:异步模式

波特率:115200 Bits/s

字长:8bit

校验位:无

停止位:1bit

数据方向:双向

ESP8266使用后lua esp8266 ha_IP_07