找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

ESP8266串口通信不能用手機(jī)連接

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:382088 發(fā)表于 2018-8-3 17:15 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
為什么我的ESP8266串口模塊不能用手機(jī)連接。。。。
單獨用USB串口給它就能連,一跟單片機(jī)共串口就不可以了。。
這是我的程序:
#include <stdio.h>
#include <reg51.h>
#include <intrins.h>
void delay_ms(unsigned int time);
void UartInit();

sbit LED1 = P1^0;
sbit LED2 = P1^1;
sbit LED3 = P1^2;
sbit LED4 = P1^3;
sbit LED5 = P1^4;
sbit LED6 = P1^5;
sbit LED7 = P1^6;
sbit LED8 = P1^7;

void UartInit()
{
        TMOD = 0X20;

        SCON = 0X50;

        // PCON = 0X80; //8位自動重載,波特率加倍,即SMOD=1;
        PCON = 0;

        TH1 = 0XFD; //用11.0592 MHz波特率 9600;

        TL1 = 0XFD;

        TR1 = 1;

        ES=1;

        EA=1;
}

void send_str(char *string) //發(fā)送數(shù)據(jù)
{
        while(*string!='\0')
        {
                SBUF = *string;
                while(TI != 1);

                TI = 0;
                string++;
        }
}

void delay_ms(unsigned int time) //延時
{        
         unsigned char a,b,c;
        for(;time>0;time--)
    for(c=8;c>0;c--)
        for(b=197;b>0;b--)
            for(a=2;a>0;a--);
}

void ESP8266_init()  
{
        send_str("AT+CWMODE=2\r\n");
        delay_ms(600);

        send_str("AT\r\n");
        delay_ms(400);

//        send_str("AT+CWSAP=\"ayi\",\"1234567890\",1,3\r\n");
//        delay_ms(400);

        send_str("AT+CIPMUX=1\r\n");
        delay_ms(400);
        
        send_str("AT+CIPSERVER=1,333\r\n");
        delay_ms(400);
}

//主函數(shù);
void main(void)
{

        UartInit();//調(diào)用串口初始化函數(shù)
        delay_ms(500);
        ESP8266_init();
        while(1){;}
}

void receive()interrupt 4
{
        unsigned char TempDat;

        if (RI)//串口接收完整一個字節(jié)

        {
                RI = 0;
                TempDat = SBUF;
                SBUF = TempDat; //把數(shù)據(jù)A送給SBUF緩存器中
        }
        if(TI);//判斷發(fā)送標(biāo)志位TI,如果發(fā)送完成,硬件會置TI標(biāo)志位1
        {
                TI = 0;
        }

                if (TempDat =='1')
                {
                        LED1 = !LED1 ;//開燈
                }
                else if (TempDat =='2')
                {
                        LED2 = !LED2; //關(guān)燈
                }
                else if (TempDat =='3')
                {
                        LED3 = !LED3 ;//開風(fēng)扇
                }
                else if (TempDat =='4')
                {
                        LED4 = !LED4 ;//關(guān)風(fēng)扇
                }
                else if (TempDat =='5')
                {
                        LED5 = !LED5 ; //開熱水器
                }
                else if(TempDat =='6')
                {
                        LED6 = !LED7 ; //關(guān)熱水器
                }
                else if(TempDat =='7')
                {
                        LED7 = !LED7 ; //關(guān)熱水器
                }
                else if(TempDat =='8')
                {
                        LED8 = !LED8 ; //關(guān)熱水器
                }
}
stc-isp的串口助手能夠顯示發(fā)送給模塊的那四條AT指令了,可是就是不能用手機(jī)成功連接它,想不明白???



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

使用道具 舉報

沙發(fā)
ID:382088 發(fā)表于 2018-8-3 17:16 | 只看該作者
是ESP8266WIFI模塊,不是ESP8266串口模塊,打錯了,不好意思。。。
回復(fù)

使用道具 舉報

板凳
ID:382640 發(fā)表于 2018-8-3 18:00 | 只看該作者
如果單片機(jī)發(fā)送的指令正確,同樣指令通過用USB轉(zhuǎn)口發(fā)送到wifi模塊能夠工作,那就要檢查硬件部分了(串口配置都一樣的情況下),共地這些都查下,還有就是用示波器看下交互數(shù)據(jù)是否正常。也可以用串口打印8266的返回數(shù)據(jù),看是哪一部出現(xiàn)錯誤
回復(fù)

使用道具 舉報

地板
ID:382088 發(fā)表于 2018-8-4 09:52 | 只看該作者
_520_ 發(fā)表于 2018-8-3 18:00
如果單片機(jī)發(fā)送的指令正確,同樣指令通過用USB轉(zhuǎn)口發(fā)送到wifi模塊能夠工作,那就要檢查硬件部分了(串口配 ...

謝謝您的回答。。
我剛剛監(jiān)聽了一下模塊發(fā)送的數(shù)據(jù),發(fā)現(xiàn)XCOM調(diào)試上面沒有顯示之前那三條指令,會不會是指令發(fā)送不成功的原因才導(dǎo)致手機(jī)不能連接呢?該怎么解決呢?!!謝謝
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

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