標(biāo)題:
關(guān)于51單片機(jī)和ESP8266的通信問(wèn)題(只能發(fā)送AT,就沒(méi)有后面了)
[打印本頁(yè)]
作者:
sczust
時(shí)間:
2018-10-30 18:47
標(biāo)題:
關(guān)于51單片機(jī)和ESP8266的通信問(wèn)題(只能發(fā)送AT,就沒(méi)有后面了)
用51單片機(jī)和esp8266相連接, r/t連接正確。想實(shí)現(xiàn)通過(guò)單片機(jī)向esp8266發(fā)送指令設(shè)置成客戶端,發(fā)送數(shù)據(jù)給連接到此WiFi的另一臺(tái)服務(wù)器。
燒錄程序只能發(fā)送AT,就沒(méi)有后面了。程序如下,希望大神們幫我看看
#include<reg52.h>
#include <stdio.h>
#include <intrins.h>
#include <string.h>
#define Buf_Max 10
unsigned char i=0;
unsigned char j=0;
unsigned char idata Rec_Buf[10];
bit Hand(unsigned char *a);
char code str1[]="AT\r\n";
char code str2[]="AT+CWMODE=2\r\n";
char code str3[]="AT+RST\r\n";
char code str4[]="AT+CIPMUX=0\r\n";
char code str5[]="AT+CIPSTART=\"TCP\",\"192.168.4.2\",8234\r\n";
char code str6[]="AT+CIPSEND=6\r\n";
char code str7[]="hello!\r\n";
void CLR_Buf(void)
{
unsigned char k;
for(k=0;k<Buf_Max;k++)
{
Rec_Buf[k] = 0;
}
//i = 0;
}
bit Hand(unsigned char *a)
{
if(strstr(Rec_Buf,a)!=NULL)
return 1;
else
return 0;
}
void Delays(void) //Delay500ms
{
unsigned char i,j,k;
for(k=0;k<2;k++){
for(i=0;i<255;i++)
for(j=0;j<255;j++);
for(i=0;i<255;i++)
for(j=0;j<255;j++);
for(i=0;i<255;i++)
for(j=0;j<140;j++);
}
}
void UARTInit(void)
{
SCON =0x50;
T2CON=0x34;
RCAP2L=0xD9;
RCAP2H=0xFF; //波特率9600
//TR1=1;
EA=1;
//ES=1;
}
void UARTSendByte(unsigned char byte)
{
SBUF=byte;
while(TI==0);
TI=0;
}
void UARTSendString(unsigned char *string)
{
while(*string)
{ UARTSendByte(*string++); }
}
void ESP8266()
{
UARTSendString(str1);
while(!Hand("OK"));
CLR_Buf();
Delays();
UARTSendString(str2);
while(!(Hand("OK")))
{
Delays();
Delays();
}
CLR_Buf();
UARTSendString(str3); //RST
while(!Hand("OK"))
{
Delays();
Delays();
}
CLR_Buf();
UARTSendString(str4);
while(!Hand("OK"))
{
Delays();
Delays();
}
CLR_Buf();
UARTSendString(str5);
while(!Hand("OK"))
{
Delays();
Delays();
}
CLR_Buf();
UARTSendString(str6);
while(!Hand("ready"))
{
Delays();
Delays();
}
CLR_Buf();
while(!Hand(">")){
UARTSendString(str7);
Delays();
Delays();
}
}
void main(void)
{
UARTInit();
while(1)
{
Delays();
Delays();
ESP8266();
Delays();
}
}
void UARTInterrupt(void) interrupt 4
{
ES = 0;
if (RI)
{
RI = 0;
Rec_Buf[j] = SBUF;
//SBUF=Rec_Buf[j];
j++;
if(j>Buf_Max)
{
j = 0;
}
}
if (TI)
{
TI = 0;
}
ES = 1;
}
復(fù)制代碼
作者:
小貓貓愛(ài)吃魚(yú)
時(shí)間:
2018-10-31 09:50
有可能出現(xiàn)的問(wèn)題
1、服務(wù)器配置錯(cuò)誤
2、IP地址不對(duì),要在同一網(wǎng)段內(nèi)
3、沒(méi)有正確實(shí)現(xiàn)服務(wù)器連接
4、還有其他未知因素
5、可以加我好友,說(shuō)明一下具體實(shí)現(xiàn)功能要求,幫你設(shè)計(jì)
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1