前言
- 学习正点原子提供的ESP8266例程,移植ESP8266驱动程序到HAL库并进行封装,方便在以后的学习工作中快速使用
- 本文的目标是实现TCP透传
硬件环境
ATK-ESP8266模块
STM32F1精英板
- ATK-ESP8266直接连接到ATK MODULE排针
- USART1作为用户输入输出
- 引脚连接
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指令
指令参数和响应请参考:安信可修改版
- 基础指令
指令 | 描述 |
AT | 测试指令 |
AT+RST | 重启模块 |
AT+GMR | 查看版本信息 |
ATE | 开关回显功能 |
AT+RESTORE | 恢复出厂设置 |
AT+UART | 设置串口配置 |
- 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 | 停止智能连接 |
- 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 命令 |
- SYS工具箱
指令 | 描述 |
AT+CSYSWDTENABLE | 使能看门狗 |
AT+CSYSWDTDISABLE | 关闭看门狗 |
AT+CSYSWDTCLEAR | 清零看门狗 |
AT+CSYSHEAP | 获取剩余RAM大小 |
- 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晶振
SYS配置
开启SW调试功能
USART1和USART3配置
USART1用来作用户输入输出,USART3用来与ESP8266进行通信。
这里将两个串口采取相同的参数设置
模式:异步模式
波特率:115200 Bits/s
字长:8bit
校验位:无
停止位:1bit
数据方向:双向