ESP8266与STC89C51单片机通信,为什么单片机可以向ESP8266发送AT指令,但ESP8266发送的数据单片机接收不到?

最近学习APP与单片机通过ESP8266通信,ESP8266做服务器,APP能将数据发送到ESP8266,但ESP8266不能发送给单片机,请各位大佬帮忙解答一下。下面是代码。万分感谢

void UartConfiguration()
{
    TMOD |=0x20;      //方式2
    TH1=0xfd;           //波特率9600
    TL1=0xfd;           //
    PCON=0x00;      //波特率不加倍
    SCON=0x50;      //
    EA=1;           //
    ES=1;           //
    TR1=1;          //
    TI=1;
    }
void connect_init()
{
    printf("AT+CIPMUX=1\r\n");
    DelayMs(30000);
    printf("AT+CIPSERVER=1,8080\r\n");

}
//重写putchar()
char putchar(char ch)
{
    ES=0;
    SBUF=ch;
    while(TI==0);
    TI=0;
    ES=1;
    return 0;
}
void ESP8266_init()
{
    UartConfiguration();
    TI=0;             //等待发送完成
    connect_init(); 
}
void ESP_UART() interrupt 4
{
    static uchar i=0;
    if(RI==1)
    {
         RI=0;  
         Recive_table[i]=SBUF; 
         led3 = ~led3;
         sendByte(Recive_table[i]);
         i++;         
         if((Recive_table[i-1]=='\n'))
         {
                Recive_table[i]='\0';
                i=0; 
         }
    }
    else
        TI=0;
}

3个回答

可以换一个esp8266的at指令固件试一下

hulins
hulins 重刷at固件有用吗?我现在也遇到了这个难题就是没办法去正确接收数据,串口倒是有数据进来了,但是数据都是没办法辨别的
大约一个月之前 回复

刷at指令固件可以吗?

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问