哪位大神可以帮助我一下?我用串口助手调试是程序是可以的,可是接到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;
}
}
}
}
|