找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機(jī)串口發(fā)送AT+RST指令后程序復(fù)位問題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:1013010 發(fā)表于 2022-3-29 21:07 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
本想要通過串口2給 ESP8266-12F 發(fā)送AT+RST指令,使其模塊復(fù)位,但是發(fā)送后發(fā)現(xiàn)程序也跟著復(fù)位,重復(fù)執(zhí)行。單片機(jī)程序如下:

#include<stc12c5a60s2.h>
#include<stdio.h>

#define uchar unsigned char
#define uint  unsigned int
        
#define S2RI 0x01   //串口2接收中斷中斷請求標(biāo)志位
#define S2TI 0x02   //串口2發(fā)送中斷請求標(biāo)志位

uchar uart1Receive[100];   //串口1的接收數(shù)據(jù)
uchar uart2Receive[100];         //串口2的接收數(shù)據(jù)


//延時函數(shù)
void delay_ms(uint x)
{        uint j;
        for(;x>0;x--)
                for(j=125;j>0;j--);
}



void uart_init() //串口初始化
{        //fosc=11.059MHZ
        SCON = 0x50; //串口工作在方式1
        TMOD = 0x20; //T1采用定時方式2
        TH1 = TL1 = 0xfd;//9600b/s
        PCON = 0;    //波特率不加倍
        
        TR1=1;   //開啟定時器T1

        //串口2只能采用獨(dú)立波特率發(fā)生器 ESP8266波特率設(shè)為9600
        S2CON = 0x50;   //串口2工作在方式1  
  BRT = 0xfd;     //獨(dú)立波特率發(fā)生器初值
  AUXR = 0x10;    //BRTR=1 獨(dú)立波特率發(fā)生器開始計數(shù)

}


//串口1 發(fā)送 byte
void uart1_send_byte(uchar byte)
{
        SBUF = byte;
        while(TI==0); //等待發(fā)送完成
        TI=0; //清TI標(biāo)志位
}


//串口1 發(fā)送 字符串
void uart1_send_string(uchar *str)
{
        while(*str!='\0')
        {
                uart1_send_byte(*str);
                str++;
        }
}


//串口2 發(fā)送 1byte 數(shù)據(jù)
void uart2_send_byte(uchar byte)
{
        S2BUF = byte;
        while(!(S2CON&S2TI)); //等待發(fā)送完成 等待S2TI=1
        S2CON&=~S2TI;        //清S2TI標(biāo)志位 令S2TI=0
}


//串口2 發(fā)送 字符串
void uart2_send_string(uchar *str)
{
        while(*str!='\0')
        {
                uart2_send_byte(*str);
                str++;
        }
}


void main()
{        
        uart_init();
        delay_ms(100);
        uart1_send_string("Uart Init!\r\n");
        delay_ms(500);
        uart2_send_string("AT+RST\r\n");
        delay_ms(500);
        uart1_send_string("ESP RST!\r\n");
        while(1);
}






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

使用道具 舉報

沙發(fā)
ID:857072 發(fā)表于 2022-3-29 23:50 來自觸屏版 | 只看該作者
8266上電時說是有400-500ma電流,會不會是把你的單片機(jī)電源拉低重啟了。
回復(fù)

使用道具 舉報

板凳
ID:123289 發(fā)表于 2022-3-30 08:23 | 只看該作者
發(fā)送其它的也這樣嗎?
回復(fù)

使用道具 舉報

地板
ID:1013784 發(fā)表于 2022-3-30 11:27 | 只看該作者
8266有個復(fù)位引腳,低電平觸發(fā),你可以單獨(dú)用一個端口引腳來控制它復(fù)位,不用命令也行
回復(fù)

使用道具 舉報

5#
ID:1013010 發(fā)表于 2022-3-30 13:24 | 只看該作者
yzwzfyz 發(fā)表于 2022-3-30 08:23
發(fā)送其它的也這樣嗎?

只有發(fā)送AT+RST后才會不斷重啟,其他會有OK,懷疑是硬件問題
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

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