|
自己在做項(xiàng)目的時(shí)候碰見了需要使用ESP8266wifi模塊的情況,在某寶上買了一個(gè)ESP8266的模塊,了解了基本使用方法后自己編寫程序的時(shí)候出現(xiàn)了問(wèn)題,問(wèn)題也沒有解決,下面的程序是我在網(wǎng)上找的一個(gè)程序,單片機(jī)和ESP8266的波特率都是9600,晶振使用的也是12,手機(jī)和ESP8266都是接入了同一個(gè)路由器,但是就是無(wú)法建立連接,有人能發(fā)現(xiàn)問(wèn)題所在嗎,手機(jī)使用的是網(wǎng)絡(luò)調(diào)試助手
- #include<reg52.h>
- /*此程序是手機(jī)連接ESP8266模塊以后向模塊發(fā)送字符K,控制LED的翻轉(zhuǎn)*/
- typedef unsigned char u8;
- typedef unsigned int u16;
- sbit LED = P2^3;u8 dat;
- void ConfigUART(u16 buad);//串口通信初始化函數(shù),buad為單片機(jī)設(shè)置的波特率。
- void Delay_ms(u16 n);
- void Uart_Send_String(u8 *string);//串口發(fā)送多個(gè)字節(jié)。
- void Delay_Us(u8 us);
- void Sent_UART(u8 dat);//串口發(fā)送一個(gè)字節(jié)
- void ESP8266_Init();//ESP8266初始化
- void main()
- {
- EA = 1;
- ConfigUART(9600);
- ESP8266_Init();
- while(1);
- }
- void ConfigUART(u16 buad)
- {
- SCON = 0x50;
- TMOD &= 0X0F;
- TMOD |= 0x20;
- TH1 = 256 - (11059200/12/32)/buad;
- TL1 = TH1;
- ET1 = 0;
- TR1 = 1;
- }
- void Sent_UART(u8 dat)
- {
- ES = 0;
- TI=0;
- SBUF = dat;
- while(!TI);
- TI = 0;
- ES = 1;
- }
- void Delay_Us(u8 us)
- {
- while(us--);
- }
- void Delay_ms(u16 n)
- {
- unsigned int i,j;
- for(i=0;i<n;i++)
- for(j=0;j<123;j++);
- }
- void Uart_Send_String(u8 *string)
- {
- while(*string)
- {
- Sent_UART(*string++);
- Delay_Us(5);
- }
- }
- void ESP8266_Init()
- {
- Uart_Send_String("AT\r\n");
- Delay_ms(1000);
- Delay_ms(1000);
- Uart_Send_String("AT\r\n");
- Delay_ms(1000);
- Delay_ms(1000);
- Uart_Send_String("AT+CIPMUX=1\r\n");
- Delay_ms(1000);
- Delay_ms(1000);
- Uart_Send_String("AT+CIPSERVER=1,8080\r\n");
- }
- void InterruptUART() interrupt 4
- {
- if (RI) //接收到字節(jié)
- {
- RI = 0; //手動(dòng)清零接收中斷標(biāo)志位
- dat = SBUF; //接收到的數(shù)據(jù)保存到接收字節(jié)變量中
- if(dat=='k')
- {
- LED = ~LED;
- } //接收到的數(shù)據(jù)又直接發(fā)回,叫作-"echo",
- //用以提示用戶輸入的信息是否已正確接收
- }
- if (TI) //字節(jié)發(fā)送完畢
- {
- TI = 0; //手動(dòng)清零發(fā)送中斷標(biāo)志位
- }
- }
復(fù)制代碼
|
評(píng)分
-
查看全部評(píng)分
|