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