找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 5270|回復(fù): 3
收起左側(cè)

ESP8266為什么和單片機(jī)連接后會(huì)自動(dòng)不停的發(fā)送信息呢求大神幫我看下

[復(fù)制鏈接]
ID:184257 發(fā)表于 2017-3-29 21:06 | 顯示全部樓層 |閱讀模式
我把ESP8266模塊用電腦發(fā)送AT指令倒是很正常工作,可是接到單片機(jī)上過(guò)后它把AT指令執(zhí)行完過(guò)后,它就會(huì)一直向串口發(fā)送數(shù)據(jù),,這是為什么,,,源碼寫(xiě)的有點(diǎn)亂剛學(xué)沒(méi)有多久,,,,希望大家可以幫幫我
#include <reg52.h>
#include<string.h>
#define uchar unsigned char
#define uint  unsigned int
void Send_Hex(uchar b);
void Send_ASCII(uchar *b);
void CLR_Buf(void);
sbit led=P1^0;
int Buf_Max;
char Rec_Buf[20],t;
void delay(uint z)
{
        uint x,y;
        for(x = z; x > 0; x--)
                for(y = 114; y > 0 ; y--);
}       
void UART_init()
{
/*        TMOD = 0x20;          //T1工作模式2  8位自動(dòng)重裝
        TH1 = 0xfd;
        TL1 = 0xfd;         //比特率9600
        TR1 = 1;                //啟動(dòng)T1定時(shí)器
        SM0 = 0;
        SM1 = 1;                 //串口工作方式1 10位異步
        REN = 1;                //串口允許接收
        EA  = 0;                //關(guān)總中斷
        ES  = 0;                //串口中斷關(guān)閉         */
        TMOD = 0x20;
        SCON = 0x50;
        TH1 = 0xFD;
        TL1 = TH1;
        PCON = 0x00;
        EA = 0;
        ES = 0;
        TR1 = 1;
}
void main()
{
        UART_init(); //串口初始化
        delay(3000);
        Send_ASCII("AT"); //發(fā)送聯(lián)機(jī)指令
    Send_Hex(0x0d); //發(fā)送回車符
    Send_Hex(0x0a); //發(fā)送換行符
        delay(3000);
        CLR_Buf();//清除返存
        Send_ASCII("AT+CWJAP=lify5288,q16888888"); //發(fā)送聯(lián)機(jī)指令
    Send_Hex(0x0d); //發(fā)送回車符
    Send_Hex(0x0a); //發(fā)送換行符
        delay(10000);
        CLR_Buf();//清除返存
        Send_ASCII("AT+CIPMUX=1"); //發(fā)送聯(lián)機(jī)指令
    Send_Hex(0x0d); //發(fā)送回車符
    Send_Hex(0x0a); //發(fā)送換行符
        CLR_Buf();//清除返存
        delay(3000);
        Send_ASCII("AT+CIPSERVER=1,1000"); //發(fā)送聯(lián)機(jī)指令
    Send_Hex(0x0d); //發(fā)送回車符
    Send_Hex(0x0a); //發(fā)送換行符
        CLR_Buf();//清除返存
        delay(3000);
        while(1)
        {
                t = SBUF;
                if(RI==1)                     // 是否有數(shù)據(jù)到來(lái)
        {
            RI = 0;
                        Send_ASCII("AT+CIPSEND=0,5"); //發(fā)送聯(lián)機(jī)指令
                       Send_Hex(0x0d); //發(fā)送回車符
            Send_Hex(0x0a); //發(fā)送換行符
                 CLR_Buf();//清除返存
                        delay(1500);
                        Send_ASCII("TTTTT"); //發(fā)送聯(lián)機(jī)指令
                       Send_Hex(0x0d); //發(fā)送回車符
            Send_Hex(0x0a); //發(fā)送換行符
                 CLR_Buf();//清除返存          
                 }        
        }
               
}


void Send_Hex(uchar b) //發(fā)送
{
            RI = 0;
                SBUF = b;       
                while(!TI);
                TI = 0;
}

void UART() interrupt 4
{

}

void CLR_Buf(void)//清除
{
unsigned char k;
for(k=0;k<Buf_Max;k++) //將緩存內(nèi)容清零
{
Rec_Buf[k] = 0;
}
}



void Send_ASCII(unsigned char *b) //字節(jié)發(fā)送
{

for (b; *b!='\0';b++)
{
SBUF = *b;
while(TI!=1); //等待發(fā)送完成
TI = 0; //清除發(fā)送中斷標(biāo)志位
}

}

相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

ID:241423 發(fā)表于 2018-7-31 21:06 | 顯示全部樓層
請(qǐng)問(wèn)解決了嗎?我也遇到這樣的問(wèn)題,一直發(fā)給單片機(jī)串口助手看不到的數(shù)據(jù)
回復(fù)

使用道具 舉報(bào)

ID:690278 發(fā)表于 2020-8-18 20:00 | 顯示全部樓層
請(qǐng)問(wèn)樓主解決了嗎?我也遇到了這個(gè)問(wèn)題
回復(fù)

使用道具 舉報(bào)

ID:781556 發(fā)表于 2020-8-25 09:05 | 顯示全部樓層
遇到過(guò)的情況:
1.波特率不匹配
2.電路干擾
3 電源
建議提取串口數(shù)據(jù),判斷問(wèn)題數(shù)據(jù)是不是8266的啟動(dòng)報(bào)文。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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