想问一下,单片机可以与电脑串口通信,ESP8266也能与电脑串口通信并发送AT指令控制,但ESP8266接收不到来自单片机的AT指令是什么原因我用的是51开发板,WIFI模块是ESP-01S,因为开发板电源接口不够所以用开发板给电源模块供电再用ESP8266连接电源模块
ESP8266的VCC和EN接电源模块的3V3,GND接电源模块的GND
ESP8266的TX、RX分别连接了单片机的P31(RX)、P30(TX)
不知道怎么上传图片,我就直接复制串口助手的信息了
(省略乱码)
Ai-Thinker Technology Co. Ltd.
ready
AT+CWMODE=2
AT+CIPMUX=1
AT+CIPSERVER=1,8080
发送AT+CIPMUX?后显示
AT+CIPMUX?
+CIPMUX:0
OK
下面是我找的例程
- #include<reg52.h> //51单片机常用的头文件
- #define uchar unsigned char //宏定义一个无符号的char类型
- #define uint unsigned int //宏定义一个无符号的int类型
- //发送一字节
- void sendByte(uchar b)
- {
- SBUF = b;
- while(!TI);
- TI=0;
- }
- //发送字符串
- void sendString(uchar *s)
- {
- while(*s != '\0') //字符串默认结尾'\0',以此来判断字符串的结束
- {
- sendByte(*s);
- s++;
- }
- }
- //初始化ESP8266WiFi模块
- void initEsp()
- {
- uint a;
- SCON = 0x50; //8位数据,可变波特率
- TMOD = 0x20; //设置定时器1位16位自动重装模式
- TL1 = 0xfd; //设置定时器初值,波特率为9600
- TH1 = 0xfd;
- ET1 = 0; //禁止定时器1中断
- TR1 = 1; //启动定时器1
- EA = 1;
- for (a=0; a<50000; a++); //延时几秒,让模块有时间启动
- sendString("AT+CWMODE=2\r\n"); //设置为softAP和station共存模式
- //WiFi热点不能通过代码设置,可使用串口助手进行设置,该设置断电不丢失
- /*
- for (a=0; a<20000; a++);
- sendString("AT+CWSAP='TEST','12345678',1,3\n"); //建立WiFi热点
- */
- for (a=0; a<50000; a++);
- sendString("AT+CIPMUX=1\r\n"); //启动多连接
- for (a=0; a<20000; a++);
- sendString("AT+CIPSERVER=1,8080\r\n");//建立server,端口为333
- RI=0;
- ES=1; //初始化完成,串行口中断打开
- }
- //主函数
- void main()
- {
- initEsp();
- }
复制代码 |