当前位置: 代码迷 >> 综合 >> esp8266+单片机之最最简单(AT指令)应用(一)
  详细解决方案

esp8266+单片机之最最简单(AT指令)应用(一)

热度:28   发布时间:2024-01-05 14:14:26.0

51单片机+esp8266 wifi模块的STA模式

模块作为客户端发送数据给远程主机

烧代码前需要先配置一下WiFi模块,AT+CWJAP,让其先加入一个有效网络

#include<reg52.h>
#include<stdio.h>#define uchar unsigned char 
#define uint unsigned intvoid delayms(uint x)   //51单片机的常用延时方式
{uint i,j;for(i=x;i>0;i--)for(j=110;j>0;j--);
}void uart_init()      //串口的初始化
{TMOD = 0x20;TH1 = 0XFd;TL1 = 0XFd;SCON = 0x50;PCON = 0X00;TR1 = 1;EA = 1;ES = 1;
} void wifi_init()      //初始化wifi模块
{ES = 0;       //关闭串口中断,以免发送指令过程中被其他事情打断TI = 1;printf("AT+RST\r\n");  //往串口发重启指令,在单片机中使用printf默认是往串口发送数据delayms(1200);         //适当延时,给wifi模块一点反应时间printf("AT+CWMODE=1\r\n");  //选择STA模式delayms(1200);printf("AT+CIPMUX=0\r\n");  //单通道模式delayms(1200);printf("AT+CIPSTART=\"UDP\",\"192.168.1.118\",6666\r\n");  //设置远程主机IP和端口号delayms(1200);printf("AT+CIPMODE=1\r\n");  //选择透传delayms(1200);printf("AT+CIPSEND\r\n");  //发送数据命令delayms(1200);while(!TI);TI = 0;  ES = 1;  //重新开启串口中断
}void send(char *p)  //发送数据函数
{TI=0;do{	SBUF = *p;p++;while(!TI);TI = 0;}while(*p);SBUF = ' ';while(!TI);TI = 0;
}void main()
{uart_init();wifi_init();while(1){send("win ");  //这里只简单发送几个字符串作为演示delayms(1000);  //适当延时}
}