想问一下,单片机可以与电脑串口通信,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();
}