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