模塊 用 USB轉TTL 可以正常運行 問題是 把程式下載到單片機里 上電 發送完 我定義的命令后 還一直發一些莫名其妙的資料 發十來秒 然后停幾秒 又開始發 一直重復 大佬幫忙看一下 程式有什么問題
#include "reg52.h" //此檔案中定義了單片機的一些特殊功能暫存器
#include "intrins.h" //此檔案中定義了單片機的一些特殊功能暫存器
typedef unsigned int u16; //對資料型別進行宣告定義
typedef unsigned char u8;
sbit led=P2^0;
u8 a=0;
u8 receive[2];
void delay1ms(u16 i) //誤差 0us
{
unsigned char a,b,c;
for(c=i;c>0;c--)
for(b=142;b>0;b--)
for(a=2;a>0;a--);
}
/*******************************************************************************
* 函式名 :UsartInit()
* 函式功能 :設定串口
* 輸入 : 無
* 輸出 : 無
*******************************************************************************/
void UsartInit()
{
SCON=0X50; //設定為作業方式1
TMOD=0X20; //設定計數器作業方式2
PCON=0X80; //波特率加倍
TH1=0XF3; //計數器初始值設定 4800
TL1=0XF3;
ES=1; //打開串口中斷
EA=1; //打開總中斷
TR1=1; //打開計數器
}
void send(u8 n) //字符發送
{
ES=0; //關閉串口中斷
SBUF=n; //發送資料
while(!TI); // 等待發送完成
TI=0; //清除發送完畢中斷請求標志位
ES=1; //打開串口中斷
}
void ESP8266(u8 *s)//單片機向ESP8266發送AT配置指令、
{
while(*s!='\0')
{
send(*s); //逐個發送
s++;
}
s=0;
}
void main()
{
led=0;
UsartInit(); // 串口初始化
ESP8266("AT+CIPMUX=1\r\n");
delay1ms(1000);
ESP8266("AT+CIPSERVER=1,6061\r\n");
delay1ms(1000);
while(1);
}
void Usart() interrupt 4
{
receive[0]=SBUF;
RI=0;//清除接收中斷標志位
SBUF=receive[0];//將接收到的資料放入到發送暫存器
while(!TI); //等待發送資料完成
TI=0;
}

uj5u.com熱心網友回復:
有人嗎 大佬救命啊uj5u.com熱心網友回復:
是不是需要喂狗!延時太長了!uj5u.com熱心網友回復:
大寫,大寫,大寫buj5u.com熱心網友回復:
你這串口助手可以同時查看單片機發的資料和8266發的資料?轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/35561.html
標籤:單片機/工控
上一篇:《MySQL資料操作與查詢》- 維護學生資訊、老師資訊和成績資訊 支持按多種條件組合查詢學生資訊和成績資訊
下一篇:嵌入式可以指UI庫
