历史上的今天
今天是:2025年10月25日(星期六)
2022年10月25日 | 【51单片机STC89C52】ESP8266 ESP-01S模块使用
2022-10-25 来源:csdn
一、部分AT指令


注意:AT指令,控制类勾选发送新行,传输数据时不需要
二、建立TCP服务器

注:ESP-01S和主机要在同一wifi网络下

三、编程实现设备模式接入路由器配置
1、编程分析
ESP-01S连接网络后重启自动连接网络,并且返回WIFI GOT IP。
这里暂不考虑联网失败,后面再通过AT指令再次联网就可以。

以设备模式接入路由器配置,发送AT+CWJAP="OnePlus9R","qwertyuiop"指令
入网成功返回WIFI GOT IP等,最终返回值为OK
入网失败返回值为FAIL

连接到 TCP server,发送AT+CIPSTART="TCP","192.168.67.162",8880指令
开启透传模式,发送AT+CIPMODE=1指令
开始发送接收数据,发送AT+CIPSEND指令
以上操作成功的话,返回值均为OK
连接 TCP 服务器失败,返回ERROR等,最终返回值为CLOSED,但是代码并未考虑


2、代码分析
指令
code char LJWL[] = "AT+CWJAP="OnePlus9R","qwertyuiop"rn"; //连接网络
code char LJFWQ[] = "AT+CIPSTART="TCP","192.168.67.162",8880rn";//连接服务器
char TCMS[] = "AT+CIPMODE=1rn"; //透传模式指令
char SJCS[] = "AT+CIPSENDrn"; //数据传输开始指令
char RESET[] = "AT+RSTrn"; //重启模块指令
返回值标志位
char AT_OK_Flag = 0; //OK返回值的标志位
char AT_Connect_Net_Flag = 0; //WIFI GOT IP返回值的标志位
中断处理服务函数
void Uart_Handler() interrupt 4
{
static int i = 0;//静态变量,被初始化一次
char tmp;
if(RI)//中断处理函数中,对于接收中断的响应
{
RI = 0;//清除接收中断标志位
tmp = SBUF;
if(tmp == 'W' || tmp == 'O' || tmp == 'F' || tmp == 'L'){
i = 0;
}
buffer[i++] = tmp;
if(buffer[0] == 'W' && buffer[5] == 'G'){ //入网成功的判断依据WIFI GOT IP
AT_Connect_Net_Flag = 1;
memset(buffer, '




