|
想問(wèn)一下,單片機(jī)可以與電腦串口通信,ESP8266也能與電腦串口通信并發(fā)送AT指令控制,但ESP8266接收不到來(lái)自單片機(jī)的AT指令是什么原因我用的是51開(kāi)發(fā)板,WIFI模塊是ESP-01S,因?yàn)殚_(kāi)發(fā)板電源接口不夠所以用開(kāi)發(fā)板給電源模塊供電再用ESP8266連接電源模塊
ESP8266的VCC和EN接電源模塊的3V3,GND接電源模塊的GND
ESP8266的TX、RX分別連接了單片機(jī)的P31(RX)、P30(TX)
不知道怎么上傳圖片,我就直接復(fù)制串口助手的信息了
(省略亂碼)
Ai-Thinker Technology Co. Ltd.
ready
AT+CWMODE=2
AT+CIPMUX=1
AT+CIPSERVER=1,8080
發(fā)送AT+CIPMUX?后顯示
AT+CIPMUX?
+CIPMUX:0
OK
下面是我找的例程
- #include<reg52.h> //51單片機(jī)常用的頭文件
- #define uchar unsigned char //宏定義一個(gè)無(wú)符號(hào)的char類(lèi)型
- #define uint unsigned int //宏定義一個(gè)無(wú)符號(hào)的int類(lèi)型
- //發(fā)送一字節(jié)
- void sendByte(uchar b)
- {
- SBUF = b;
- while(!TI);
- TI=0;
- }
- //發(fā)送字符串
- void sendString(uchar *s)
- {
- while(*s != '\0') //字符串默認(rèn)結(jié)尾'\0',以此來(lái)判斷字符串的結(jié)束
- {
- sendByte(*s);
- s++;
- }
- }
- //初始化ESP8266WiFi模塊
- void initEsp()
- {
- uint a;
- SCON = 0x50; //8位數(shù)據(jù),可變波特率
- TMOD = 0x20; //設(shè)置定時(shí)器1位16位自動(dòng)重裝模式
- TL1 = 0xfd; //設(shè)置定時(shí)器初值,波特率為9600
- TH1 = 0xfd;
- ET1 = 0; //禁止定時(shí)器1中斷
- TR1 = 1; //啟動(dòng)定時(shí)器1
- EA = 1;
- for (a=0; a<50000; a++); //延時(shí)幾秒,讓模塊有時(shí)間啟動(dòng)
- sendString("AT+CWMODE=2\r\n"); //設(shè)置為softAP和station共存模式
- //WiFi熱點(diǎn)不能通過(guò)代碼設(shè)置,可使用串口助手進(jìn)行設(shè)置,該設(shè)置斷電不丟失
- /*
- for (a=0; a<20000; a++);
- sendString("AT+CWSAP='TEST','12345678',1,3\n"); //建立WiFi熱點(diǎn)
- */
- for (a=0; a<50000; a++);
- sendString("AT+CIPMUX=1\r\n"); //啟動(dòng)多連接
- for (a=0; a<20000; a++);
- sendString("AT+CIPSERVER=1,8080\r\n");//建立server,端口為333
- RI=0;
- ES=1; //初始化完成,串行口中斷打開(kāi)
- }
- //主函數(shù)
- void main()
- {
- initEsp();
- }
復(fù)制代碼 |
|