我用的是STC12C5A60S2單片機,串口1用于接收數據,串口2負責發送at指令控制esp8266,我之前已經用串口調試助手發送過at指令,模塊響應正常,而且波特率都是9600.單獨用串口調試助手也能正常接收到單片機發的at指令。但是為什么一連接上單片機,電腦連接上WIFI之后,用網絡調試助手連接不上!!!!急求!!附上一部分代碼:
void WifiInit() //wifi初始化
{
Uart2_send_string("AT+CIPMUX=1\r\n");//設置多連接
Delay_1ms(2000);
Uart2_send_string("AT+CWMODE=2\r\n");//wifi模式
Delay_1ms(2000);
Uart2_send_string("AT+CIPSERVER=1,8080\r\n"); //建立server,端口號為8080
Delay_1ms(2000);
Uart2_send_string("AT+CIPSTO=2880\r\n");//超時2880s
Delay_1ms(2000);
}
void Uart2Init(void) //9600bps@11.0592MHz
{
AUXR &= 0xf7; //波特率不倍速
S2CON = 0x40; //8位數據,可變波特率
BRT = 0xFD; //設定獨立波特率發生器重裝值
AUXR &= 0xfb; //獨立波特率發生器時鐘為Fosc/12,即12T
AUXR |= 0x10; //啟動獨立波特率發生器
IE2 =0x01; //開串口2中斷 ES2=1
}
void Uart2_send_byte(unsigned char date)//串口2發送一個字節
{
unsigned char temp = 0;
IE2 = 0x00; //關串口2中斷,es2=0
S2CON= S2CON & 0xFD; //B'11111101,清零串口2發送完成中斷請求標志
S2BUF = date;
//while(TI ==0); //等待發送完成
do
{
temp = S2CON;
temp = temp & 0x02;
}while(temp==0);
// TI = 0; //清零串口發送完成中斷請求標志
S2CON= S2CON & 0xFD; //B'11111101,清零串口2發送完成中斷請求標志
// ES = 1; //允許串口1中斷
// ES2 = 1
IE2 = 0x01; //允許串口2中斷,ES2=1
}
void Uart2_send_string(unsigned char *p) //串口2發送一個字符串
{
while(*p!='\0')
{
Uart2_send_byte(*p);
p++;
}
}
|