找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5209|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

stc89c52單片機(jī)和esp8266之間通信問題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
43黑幣
單片機(jī)用的stc89c52,esp8266 -1模塊,按照下方的程序燒進(jìn)單片機(jī)后,打開電腦串口助手發(fā)送a能控制LED4燈的亮滅,但是用手機(jī)的調(diào)試助手連接WiFi后發(fā)送a電腦調(diào)試助手能接收到a字符但是就不能控制LED4的亮滅。

希望有高手能解釋一下,非常感謝


1、設(shè)置模塊為ST模式:發(fā)送:AT+CWMODE=1;返回:OK
2、  查看當(dāng)前WiFi列表:AT+CWLAP返回: OK
3、  加入當(dāng)前無線網(wǎng)絡(luò):發(fā)送命令:AT+CWJAP=”MERSAIN”,”XXXXXXXX”
第一個填你想要連接的WiFi名稱,第二個填WiFi的密碼
4、查看當(dāng)前模塊IP地址:發(fā)送: AT+CIFSR返回:當(dāng)前IP地址
5、開啟多連接模式 :發(fā)送命令:AT+CIPMUX=1返回:OK
6、建服務(wù)器 發(fā)送命令:AT+CIPSERVER=1,8080(設(shè)置指令)
   指令:AT+CIPSERVER=<mode>[,<port>]

#include<reg52.h>
typedef unsigned char u8;
typedef unsigned int u16;
u8 dat;
sbit LED4=P1^3;
void ConfigUART(u16 buad);//串口通信初始化函數(shù),buad為單片機(jī)設(shè)置的波特率。
void Delay_ms(u16 n);
void Uart_Send_String(u8 *string);//串口發(fā)送多個字節(jié)。
void Delay_Us(u8 us);
void Sent_UART(u8 dat);//串口發(fā)送一個字節(jié)
void ESP8266_Init();//ESP8266初始化
void main()
{
         EA = 1;
   ConfigUART(9600);
         ESP8266_Init();
        while(1);
}
void ConfigUART(u16 buad)
{
        SCON = 0x50;
        TMOD &= 0X0F;
        TMOD |= 0x20;
        TH1 = 256 - (11059200/12/32)/buad;
        TL1 = TH1;
        ET1 = 0;
        TR1 = 1;
}
void Sent_UART(u8 dat)
{
        ES = 0;
        TI=0;
        SBUF = dat;
        while(!TI);
TI = 0;
ES = 1;
}
void Delay_Us(u8 us)
{
while(us--);
}
void Delay_ms(u16 n)
{
        unsigned int  i,j;
        for(i=0;i<n;i++)
                for(j=0;j<123;j++);
}

void Uart_Send_String(u8 *string)
{
while(*string)
{
Sent_UART(*string++);
Delay_Us(5);
}

}
void ESP8266_Init()
{
        Uart_Send_String("AT\r\n");
        Delay_ms(2000);
        Delay_ms(1000);
        Uart_Send_String("AT\r\n");
        Delay_ms(2000);
        Delay_ms(1000);
  Uart_Send_String("AT+CIPMUX=1\r\n");
        Delay_ms(2000);
        Delay_ms(1000);
  Uart_Send_String("AT+CIPSERVER=1,8080\r\n");
}
void InterruptUART() interrupt 4
{
    if (RI)  //接收到字節(jié)
    {
        RI = 0;  //手動清零接收中斷標(biāo)志位
        dat = SBUF;  //接收到的數(shù)據(jù)保存到接收字節(jié)變量中
                if(dat=='a')
                        {
                                LED4=~LED4;
                        }                                         //接收到的數(shù)據(jù)又直接發(fā)回,叫作-"echo",
                         //用以提示用戶輸入的信息是否已正確接收
    }
    if (TI)  //字節(jié)發(fā)送完畢
    {
        TI = 0;  //手動清零發(fā)送中斷標(biāo)志位
    }

}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:123289 發(fā)表于 2019-4-8 08:17 | 只看該作者
用示波器監(jiān)察一下,確保證你發(fā)的信息格式一點(diǎn)也不錯(波特率、數(shù)據(jù)值)。
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表