
51單片機(jī)連接ESP8266模塊C語(yǔ)言程序
#include[reg52.h> //注意請(qǐng)把‘ [ ’換成 "<",下同。否則編譯時(shí)會(huì)出錯(cuò)。
#include [intrins.h> //
unsigned int a;
int b=1;
int c =1;
int d =1;
int e=1;
int f=0;
void main(void)
{
unsigned char ldat;
PCON |=0X80; //是否波特率倍增
SCON=0x50;
TMOD=0X20; //設(shè)置定時(shí)器1為模式2,做為波特率發(fā)生器
TL1=0xFF; //57600波特率的初值,板子使用11.592M晶振,初值=256-12000000/32/12/2400
TH1=0xFF; //
TI = 1;
TR1=1; //啟動(dòng)波特率發(fā)生
//設(shè)置串口方式2
do{
for (a=0; a<50000; a++);
printf ("AT+CIPMUX=1\n");
do{
if(RI)
{ //查詢是否有數(shù)據(jù)接收
ldat=SBUF; //數(shù)據(jù)暫存于變量中
RI=0;
if (ldat=='K')
{
b=0 ;
d=0;
}
c++;
if (c==1000)
{
c=1;
d=0;
}
}
}
while (d);
}while(b) ;
b=1;
c =1;
d =1;
do{
for (a=0; a<50000; a++);
printf ("AT+CIPSERVER=1,7671\n");
do{
if(RI)
{ //查詢是否有數(shù)據(jù)接收
ldat=SBUF; //數(shù)據(jù)暫存于變量中
RI=0;
if (ldat=='K')
{
b=0 ;
d=0;
}
c++;
if (c==1000)
{
c=1;
d=0;
}
}
}while (d);
}while(b) ;
b=1;
c =1;
d =1;
while(1)
{
if(RI)
{ //查詢是否有數(shù)據(jù)接收
ldat=SBUF; //數(shù)據(jù)暫存于變量中
RI=0; //重新清0等待接收
//命令接收開始
if (ldat=='}')
{
char k[50] ;
do{
if(RI)
{ //查詢是否有數(shù)據(jù)接收
ldat=SBUF; //數(shù)據(jù)暫存于變量中
RI=0; //重新清0等待接收
k[f]=ldat;
f++ ;
if(ldat==0x0A){e=0;}
}
} while (e) ;
printf("%s\n", k);
f=0;
e=1;
for (a=0; a<50; a++)
{
k[a]=0;
}
}
//命令結(jié)束
}
}
}


為了方便大家更好的學(xué)習(xí),您還可以關(guān)注暢學(xué)電子和EDA的公眾號(hào),每天推送相關(guān)知識(shí),希望能對(duì)你的學(xué)習(xí)有所幫助!

