打印
[STC单片机]

STC单片机与ESP8266WIFI模块通信问题

[复制链接]
1345|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xiangwenxiu|  楼主 | 2016-3-14 17:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
哪位大神可以帮助我一下?我用串口助手调试是程序是可以的,可是接到WIFI上,感觉
单片机不能把指令写到WIFI里面,这是为什么呢?下面是我的程序

#include<STC15F2K60S2.H>
#define uchar unsigned char
#define uint unsigned int
sbit LED9=P4^7;
sbit LED10=P4^6;
uchar Receive,p,i;
uchar Recive_table[15];
uchar flag=0;
uint a,n;
/***延时*****/


void delay(uint t)
{
while(--t);
}
/*
void us_delay (uchar k)
{
uint q;
while(k--)
{
for(q=0;q<1250;q++);
}
} */


/***串口初始化****/
void Uart(void)//波特率为115200
{
P_SW1=0x80;
SCON = 0x50;
AUXR = 0x40;
TMOD = 0x20;
TH1=0xfd;
TL1=0xfd;
ES=1;
EA=1;
TR1=1;
}




/***wifi***/
void ESP8266_Set(uchar *p)
{
while(*p!='\0')
{
SBUF=*p;
p++;
while(TI==0);
TI=0;

}
}


/***服务器建立***/
void link ( )
{
//uchar b;
LED10=1;
delay(65536);
LED10=0;
delay(65536);
}




/***主函数****/
void main()
{
LED9=1;
Uart();
for (a=0;a<50000;a++);
link();
ESP8266_Set("AT+CWMODE=2\r\n");
while(flag!=1); //每发一条命令应当判断它的返回值是否跟预期的一样,若一样才发下一条命令while(Receive!='K');
flag=0;
ESP8266_Set("AT+RST\r\n");
while(flag!=1);
flag=0;
ESP8266_Set("AT+CWSAP=\"WIFI2\",\"111122223333\",1,3\r\n");
while(flag!=1);
flag=0;
ESP8266_Set("AT+CIPMUX=1\r\n");
while(flag!=1);
flag=0;
ESP8266_Set("AT+CIPSERVER=1,8080\r\n");
link();
while(1)
{
if(i==9)
{
if(SBUF=='1')
{
LED9=0;//灯亮
}
else if (SBUF=='0')
{
LED9=1;//灯灭
}
}
}
}


/***串行中断***/
void Uart_Interrupt( ) interrupt 4
{ if(RI==1)
{
RI=0;
Receive=SBUF;
if(Receive!='\0')
{
Recive_table[i]=Receive;
i++;
if(i==2)
{
i=0;
flag=1;
}


}

}

}

相关帖子

沙发
xiangwenxiu|  楼主 | 2016-3-14 17:30 | 只看该作者
在线等,求大神指点一二啊

使用特权

评论回复
板凳
xiangwenxiu|  楼主 | 2016-3-14 18:20 | 只看该作者
好了,自己解决了

使用特权

评论回复
地板
梦在那| | 2016-3-16 13:41 | 只看该作者
xiangwenxiu 发表于 2016-3-14 18:20
好了,自己解决了

怎么解决的呢

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

8

帖子

0

粉丝