1.燒錄固件到ESP8266
2.重啟進(jìn)入運(yùn)行模式(斷開(kāi)IO 0)
3.用電腦收無(wú)線(xiàn)網(wǎng)admin 密碼:12345678 (固件初始的)
4.用電腦打開(kāi)IP網(wǎng)址:10.10.10.208 進(jìn)入設(shè)置
內(nèi)網(wǎng)IP改為:10.10.10.208 端口:5000
外網(wǎng)不用動(dòng),其它網(wǎng)絡(luò)名字admin 密碼:12345678 (固件初始的)不用改了
5.安裝手機(jī)APP,點(diǎn)連接。10.10.10.208 端口:5000 (固件初始的)
6.可以操作了。
7.接收溫度和單片串口通訊OK手機(jī)和串口助手都能查看到單片機(jī)的溫度。
制作出來(lái)的實(shí)物圖如下:
APP
ESP8266設(shè)置及說(shuō)明 本設(shè)計(jì)使用ESP8266WIFI模塊實(shí)現(xiàn)單片機(jī)超聲波測(cè)量數(shù)據(jù)向手機(jī)無(wú)線(xiàn)傳輸,讓手機(jī)是顯示測(cè)量結(jié)果。 單片機(jī)與ESP8266通信方式采用AT命令方式,首先由單片機(jī)對(duì)esp8266進(jìn)行初始化,再將手機(jī)連上esp8266的WiFi,然后再通過(guò)手機(jī)端發(fā)送指令,esp8266接收到命令傳入單片機(jī),單片機(jī)再進(jìn)行相應(yīng)的操作。模塊的VCC,GND,TXD,RXD與單片機(jī)的VCC,GND,RXD,TXD接好,以為51單片機(jī)沒(méi)有進(jìn)程和線(xiàn)程的概念,所以就在main函數(shù)的while(1)中放入我們要的主程序,而用串口中斷的方式來(lái)接收esp8266發(fā)過(guò)來(lái)的數(shù)據(jù)信息,從而實(shí)現(xiàn)用esp8266控制單片機(jī)。 ESP8266模塊是3.3V供電! 切記請(qǐng)勿接5V ! 模塊想要從FLASH啟動(dòng)進(jìn)入AT系統(tǒng),只需CH-PD引腳接VCC或接上拉(不接上拉的情況下,串口可能無(wú)數(shù)據(jù)),其余三個(gè)引腳可選擇懸空。(GPIO0為高電平代表從FLASH啟動(dòng),GPIO0為低電平代表進(jìn)入系統(tǒng)升級(jí)狀態(tài),此時(shí)可以經(jīng)過(guò)串口升級(jí)內(nèi)部固件 RST(GPIO16)可做外部硬件復(fù)位使用)。測(cè)試系統(tǒng)不同,接線(xiàn)方法也選擇多多,請(qǐng)各位根據(jù)自己的情況進(jìn)行選擇,推薦接法:只需CH-PD引腳接VCC后,將UTXD,GND,VCC,URXD連上USB-TTL(兩者的TXD和RXD交叉接)即可進(jìn)行測(cè)試。 在本設(shè)計(jì)中,單片機(jī)的串口中斷的波特率設(shè)為9600,記得在將ESP8266模塊與單片機(jī)硬件連接之前,先用USB-TTL模塊連接好ESP8266模塊,將ESP8266模塊用AT命令改為9600的波特率。 使用的命令: AT+UART=9600,8,1,0,0
AT+CWSAP="wifi_yuan","123456789",11,4 //設(shè)置模塊SSID:WIFI, PWD:密碼 及安全類(lèi)型加密模式(WPA2-PSK) 完成上面兩步后,就可以將ESP8266模塊與單片機(jī)系統(tǒng)連接起來(lái)。原理圖中JP1是ESP8266模塊插座。
參考硬件PCB圖:
網(wǎng)絡(luò)配置固件使用說(shuō)明
Esp8266-01管腳圖
Esp8266程序下載說(shuō)明:1.請(qǐng)將MTDO與GPIO0置于低電平,GPIO2置于高電平。
如果你的模塊沒(méi)有MTDO,請(qǐng)至少將GPIO0置于低電平。
GPIO0置于低電平是燒寫(xiě)模式,高電平是運(yùn)行模式。
2.請(qǐng)復(fù)位(復(fù)位是指RST低電平脈沖)或重新上電進(jìn)入燒寫(xiě)模式。
3.請(qǐng)不要使用USB轉(zhuǎn)TTL引出的電源,請(qǐng)使用獨(dú)立電源。
4.燒寫(xiě)成功后,請(qǐng)重新上電。模塊波特率更改為9600或115200.
5.燒寫(xiě)中途失敗后,請(qǐng)重新上電燒寫(xiě)。
Esp8266下載模式,降CH_PD接入電源,GPIO0接地重要事情說(shuō)3遍。。。!
分別導(dǎo)入下載數(shù)據(jù)。
點(diǎn)擊下載。
8266下載模式重新啟動(dòng)。
下載過(guò)程中顯示數(shù)據(jù)。
等待下載完成。
網(wǎng)頁(yè)配置固件配置:將esp8266運(yùn)行模式運(yùn)行,esp8266將運(yùn)行到sta+ap模式,esp8266熱點(diǎn)的SSID是:admin 密碼:12345678 。連接到esp8266熱點(diǎn)后,打開(kāi)游覽器,網(wǎng)址輸入 10.10.10.208 將進(jìn)入如下配置。連接路由器后可以不用連接esp8266的熱點(diǎn)可以直接輸入IP地址配置,具體介紹請(qǐng)看靜態(tài)IP地址設(shè)置。此功能很方便
1. esp8266熱點(diǎn)名字與密碼修改:
如圖所示,修改帳號(hào)與密碼直接修改就可以,在熱點(diǎn)中不支持中文不支持符號(hào),密碼最少8位。
2. esp8266連接路由器修改: 如圖所示,修改連接路由器的的帳號(hào)與密碼和是否連接。帳號(hào)和密碼不支持中文和符號(hào)。
選擇是否連接則會(huì)連接到相應(yīng)的路由器。
3. 通信協(xié)議的設(shè)置:1. TCP SERVER 服務(wù)器模式設(shè)置:
在tcp 服務(wù)器模式下IP地址無(wú)用(靜態(tài)IP如果要用就選擇不用則不選擇功能下面則會(huì)說(shuō)明),只需要設(shè)置相應(yīng)的端口號(hào)則為服務(wù)器的端口號(hào),如果要連接esp8266服務(wù)器模式 IP地址輸入10.10.10.208 輸入其相應(yīng)的端口號(hào)則
進(jìn)入透?jìng)髂J。直接用串口發(fā)送任何消息服務(wù)器都會(huì)接收,反之也是一樣。
2. TCP Client 客戶(hù)端模式:
在TCP 客戶(hù)端模式中靜態(tài)IP如果要用就選擇不用則不選擇功能下面則會(huì)說(shuō)明,在IP地址中輸入其要連接服務(wù)器的IP地址與端口號(hào)則就可以配置。配置完成后esp8266進(jìn)入透?jìng)。直接用串口發(fā)送消息客戶(hù)端就會(huì)向服務(wù)器發(fā)送消息。(TCP 客戶(hù)端模式必須要連接到路由器才可以開(kāi)啟此功能)
3. UDP: 在UDP中不分客戶(hù)端模式與服務(wù)器模式靜態(tài)IP如果要用就選擇不用則不選擇功能下面則會(huì)說(shuō)明,他是以廣播形式發(fā)送消息。在UDP模式中不管是連接到路由器或者沒(méi)連接到路由器IP地址則輸入的IP是要發(fā)送信息目標(biāo)地址的IP(如果所有的UDP都要接收到IP地址則 255.255.255.255),端口號(hào)則是目標(biāo)的端口號(hào)。4.靜態(tài)IP:
靜態(tài)IP 地址的作用是:連接路由器后固定分配的IP地址,xxx.xxx.xxx.yyy ,xxx是路由器決定(如:192.168.0.yyy),yyy則是你想分配的IP地址,如果要啟動(dòng)靜態(tài)IP地址必須要勾上。
靜態(tài)IP地址設(shè)置后在局域網(wǎng)內(nèi)可以不必連接esp8266的熱點(diǎn)一樣可以配置8266.在連接到路由器后可以直接打開(kāi)路由器在路由器地址輸入設(shè)置的靜態(tài)IP則可以進(jìn)入配置界面。靜態(tài)IP是必須在連接路由器后可以使用。
備注:在使用過(guò)程中不能使用80端口,目前v1.020160531版本IP地址不支持域名解析,下一個(gè)則支持域名解析,在配置完成后要點(diǎn)擊保存就可以了,如果要復(fù)位則電機(jī)復(fù)位就可以了。每種配置完成后都是透?jìng),直接發(fā)送數(shù)據(jù)及可。
如果對(duì)此固件有其他BUG或者要修改固件功能可以直接聯(lián)系作者,如果有更好的設(shè)置方案也可以和作者討論。
ESP8266調(diào)試總結(jié)
ESP8266可以配置成station 、AP、station+AP三種模式,就是說(shuō)模塊可以當(dāng)成一個(gè)設(shè)備(client)連接局域網(wǎng)內(nèi)的路由,也可以設(shè)置成是一個(gè)路由(sever),也可以既作為局域網(wǎng)里面的client同時(shí)又是其它c(diǎn)lient的sever
1、ESP8266 Client模式(Station):
AT+RST //復(fù)位模塊
AT+CWMODE=1 //設(shè)置為station模式
AT+RST //重啟生效
AT+CWLAP //查看可以連接到的無(wú)線(xiàn)路由
AT+CWJAP="yuan","456852123" //連接上無(wú)線(xiàn)路由
AT+CIFSR //查詢(xún)模塊的IP地址
AT+CIPMUX=1 //打開(kāi)多連接,否則會(huì)報(bào)錯(cuò)Link typ error
AT+CIPSTART=0,"TCP","192.168.1.111",6060 //連接到TCP Server上 使用網(wǎng)絡(luò)調(diào)試助手創(chuàng)建一個(gè)TCP Server
AT+CIPSEND=0,7 //發(fā)送字符長(zhǎng)度
testrun //發(fā)送7個(gè)字符給Server端
同時(shí)Server端也可以發(fā)數(shù)據(jù)給Client端
單鏈接方式
AT+RST //復(fù)位模塊
AT+CWMODE=1 //設(shè)置為station模式
AT+RST //重啟生效
AT+CWLAP //查看可以連接到的無(wú)線(xiàn)路由
AT+CWJAP="JSZZSJ3","********" //連接上無(wú)線(xiàn)路由
AT+CIFSR //查詢(xún)模塊的IP地址
AT+CIPMUX=0 //打開(kāi)單連接,否則會(huì)報(bào)錯(cuò)Link typ error
AT+CIPSTART="TCP","192.168.1.111",6060 //連接到TCP Server上 使用網(wǎng)絡(luò)調(diào)試助手創(chuàng)建一個(gè)TCP Server
AT+CIPSEND=7 //發(fā)送字符長(zhǎng)度
testrun //發(fā)送7個(gè)字符給Server端
同時(shí)Server端也可以發(fā)數(shù)據(jù)給Client端
2、ESP8266 Server模式(Station+AP):
AT+RST //復(fù)位模塊
AT+CWMODE=3 //設(shè)置為AP模式
AT+RST //重啟生效
AT+CWLAP //查看可以連接到的無(wú)線(xiàn)路由
AT+CWJAP="JSZZSJ3","********" //連接上無(wú)線(xiàn)路由
AT+CIFSR //查詢(xún)模塊的IP地址
AT+CIPMUX=1 //打開(kāi)多連接
AT+CIPSERVER=1,6060 //建立Server
使用網(wǎng)絡(luò)調(diào)試助手創(chuàng)建一個(gè)TCP Client,設(shè)置好要連接到的Server的IP和端口號(hào),即可連接
Client就可以發(fā)送數(shù)據(jù)給Server端了
如果同時(shí)想Server發(fā)數(shù)據(jù)給Client只要如下命令
AT+CIPSEND=0,7 //發(fā)送字符長(zhǎng)度
就可以發(fā)送數(shù)據(jù)了
3、串口透?jìng)髂J剑═CP模式)
AT+RST //復(fù)位模塊
AT+CWMODE=3或者1 //設(shè)置為AP+Station模式或Station模式
AT+CWLAP //查看可以連接到的無(wú)線(xiàn)路由
AT+CWJAP="yuan","456852123" //連接上無(wú)線(xiàn)路由
AT+CIFSR //查詢(xún)模塊的IP地址
AT+CIPSTART="TCP","192.168.1.176",9999 //用手機(jī)做服務(wù)器,打開(kāi)網(wǎng)絡(luò)調(diào)試助手,建一個(gè)TCP server
AT+CIPMODE=1
AT+CIPSEND
接下來(lái)就可以透?jìng)髁?br />
如果要關(guān)閉透?jìng)飨劝l(fā)送三個(gè)“+”,提示CLOSE后,再勾選發(fā)送新行
4、串口透?jìng)髂J剑║DP模式)
AT+RST //復(fù)位模塊
AT+CWMODE=3或者1 //設(shè)置為AP+Station模式或Station模式
AT+CWLAP //查看可以連接到的無(wú)線(xiàn)路由
AT+CWJAP="JSZZSJ3","********" //連接上無(wú)線(xiàn)路由
AT+CIFSR //查詢(xún)模塊的IP地址
AT+CIPSTART="UDP","192.168.1.176",9999,5000,0 //用手機(jī)做服務(wù)器,打開(kāi)網(wǎng)絡(luò)調(diào)試助手,建一個(gè)UDP server
AT+CIPMODE=1
AT+CIPSEND
接下來(lái)就可以透?jìng)髁?br />
如果要關(guān)閉透?jìng)飨劝l(fā)送三個(gè)“+”,提示CLOSE后,再勾選發(fā)送新行
AT+RESTORE
AT+CIPSTART="UDP","255.255.255.255",5000,5000
AT+CIPMODE=0 //0 表示單距連接
AT+CIPSEND=5 //5 是數(shù)據(jù)長(zhǎng)度
給你一個(gè)雙向傳輸?shù)氖纠?br />
A模塊和B模塊先執(zhí)行:
AT+CWMODE=3
A模塊:
AT+CWLAP//列出附近的AP得到B模塊的SSID
AT+CWJAP="B模塊的SSID","PWD"
AT+CIPMUX=0
AT+CIPSTART="UDP","255.255.255.255",6060,6060,0
AT+CIPMODE=1
AT+CIPSEND
B模塊
AT+CIPMUX=0
AT+CIPSTART="UDP","255.255.255.255",6060,6060,0
AT+CIPMODE=1
AT+CIPSEND
單片機(jī)源程序如下:
- [code]/********************************************************************/
- /* WIFI無(wú)線(xiàn)傳輸手機(jī)顯示 */
- /********************************************************************/
- #include <reg51.h>
- #include<intrins.h>
- #include <stdio.h>
- #define uint unsigned int
- #define uchar unsigned char
- #define ulong unsigned long
- /*****************相關(guān)變量**************/
- uint Receive,i,xm0,xm1,xm2; //溫度傳送用
- long s;
- uint xm3,xm4,xm5; //濕度傳送用
- long s1;
- uchar Recive_table[40]; //用于接收wifi模塊反饋到MCU上的數(shù)據(jù)
- uchar code ta[]="0123456789- "; //測(cè)試一下
- uchar table[]="溫度:00.0 C 濕度:00.0 %";//傳送用定位模板
-
- void delay (int a)//毫秒級(jí)延時(shí)
- {
- int x,y;
- for(x=a;x>0;x--)
- for(y=110;y>0;y--);
- }
- void delayus(int t)//微秒級(jí)延時(shí)
- {
- while(t--);
- }
- /*******************************************************************
- 名稱(chēng):延時(shí)函數(shù) 作用:毫秒級(jí)延時(shí),微妙級(jí)延時(shí)函數(shù),為數(shù)據(jù)收發(fā)完成作等待.......
- ********************************************************************/
- void ms_delay(uint t)
- {
- uint i,j;
- for(i=t;i>0;i--)
- for(j=110;j>0;j--);
- }
- void us_delay(uchar t)
- {
- while(t--);
- }
- /*------------------------------------------------
- uS延時(shí)函數(shù),含有輸入?yún)?shù) unsigned char t,無(wú)返回值
- unsigned char 是定義無(wú)符號(hào)字符變量,其值的范圍是
- 0~255 這里使用晶振12M,精確延時(shí)請(qǐng)使用匯編,大致延時(shí)
- 長(zhǎng)度如下 T=tx2+5 uS
- ------------------------------------------------*/
- void DelayUs2x(unsigned char t);
- /*------------------------------------------------
- mS延時(shí)函數(shù),含有輸入?yún)?shù) unsigned char t,無(wú)返回值
- unsigned char 是定義無(wú)符號(hào)字符變量,其值的范圍是
- 0~255 這里使用晶振12M,精確延時(shí)請(qǐng)使用匯編
- ------------------------------------------------*/
- void DelayMs(unsigned char t);
- /*------------------------------------------------
- uS延時(shí)函數(shù),含有輸入?yún)?shù) unsigned char t,無(wú)返回值
- unsigned char 是定義無(wú)符號(hào)字符變量,其值的范圍是
- 0~255 這里使用晶振12M,精確延時(shí)請(qǐng)使用匯編,大致延時(shí)
- 長(zhǎng)度如下 T=tx2+5 uS
- ------------------------------------------------*/
- void DelayUs2x(unsigned char t)
- {
- while(--t);
- }
- /*------------------------------------------------
- mS延時(shí)函數(shù),含有輸入?yún)?shù) unsigned char t,無(wú)返回值
- unsigned char 是定義無(wú)符號(hào)字符變量,其值的范圍是
- 0~255 這里使用晶振12M,精確延時(shí)請(qǐng)使用匯編
- ------------------------------------------------*/
- void DelayMs(unsigned char t)
- {
- while(t--) //大致延時(shí)1mS
- {
- DelayUs2x(245);
- DelayUs2x(245);
- }
- }
- sbit Data=P3^7; //定義數(shù)據(jù)線(xiàn)
- uchar rec_dat[11]; //用于顯示的接收數(shù)據(jù)數(shù)組
- uchar R_H,R_L,T_H,T_L,RH,RL,TH,TL,revise;
- void DHT11_delay_us(uchar n)
- {
- while(--n);
- }
- void DHT11_delay_ms(uint z)
- {
- uint i,j;
- for(i=z;i>0;i--)
- for(j=110;j>0;j--);
- }
- void DHT11_start()
- {
- Data=1;
- DHT11_delay_us(2);
- Data=0;
- DHT11_delay_ms(20); //延時(shí)18ms以上
- Data=1;
- DHT11_delay_us(30);
- }
- uchar DHT11_rec_byte() //接收一個(gè)字節(jié)
- {
- uchar i,dat=0;
- for(i=0;i<8;i++) //從高到低依次接收8位數(shù)據(jù)
- {
- while(!Data); ////等待50us低電平過(guò)去
- DHT11_delay_us(8); //延時(shí)60us,如果還為高則數(shù)據(jù)為1,否則為0
- dat<<=1; //移位使正確接收8位數(shù)據(jù),數(shù)據(jù)為0時(shí)直接移位
- if(Data==1) //數(shù)據(jù)為1時(shí),使dat加1來(lái)接收數(shù)據(jù)1
- dat+=1;
- while(Data); //等待數(shù)據(jù)線(xiàn)拉低
- }
- return dat;
- }
- void Uart_Init() //使用定時(shí)器1作為波特率發(fā)生器(STC89C52、STC89C51、AT89C51等均可)
- {
- TMOD = 0x21;
- SCON = 0x50; //設(shè)置串行方式
- TH1 = 0xFD; //波特率9600
- TL1 = TH1;
- PCON = 0x00;
- EA = 1; //總中斷打開(kāi)
- ES = 1; //開(kāi)串口中斷
- TR1 = 1; //啟動(dòng)定時(shí)器1
- }
- /********************************************************************
- 名稱(chēng):串口發(fā)送函數(shù) 功能:MCU向無(wú)線(xiàn)WIFI模塊ESP8266發(fā)送數(shù)據(jù)
- ********************************************************************/
- void Send_Uart(uchar value)
- {
- ES=0; //關(guān)閉串口中斷
- TI=0; //清發(fā)送完畢中斷請(qǐng)求標(biāo)志位
- SBUF=value; //發(fā)送
- while(TI==0); //等待發(fā)送完畢
- TI=0; //清發(fā)送完畢中斷請(qǐng)求標(biāo)志位
- ES=1; //允許串口中斷
- TH0=0;
- TL0=0;
- }
- /********************************************************************
- 名稱(chēng):WIFI模塊設(shè)置函數(shù) 作用: 啟動(dòng)模塊,以便可以實(shí)現(xiàn)無(wú)線(xiàn)接入和控制
- ********************************************************************/
- void ESP8266_Set(uchar *puf) // 數(shù)組指針*puf指向字符串?dāng)?shù)組
- {
- while(*puf!='\0') //遇到空格跳出循環(huán)
- {
- Send_Uart(*puf); //向WIFI模塊發(fā)送控制指令。
- us_delay(5);
- puf++;
- }
- us_delay(5);
- Send_Uart('\r'); //回車(chē)
- us_delay(5);
- Send_Uart('\n'); //換行
- }
-
- /********************************************************************
- 名稱(chēng):主函數(shù) 作用:程序的執(zhí)行入口
- ********************************************************************/
- void main()
- {
- Uart_Init(); //波特率發(fā)生器
- ms_delay(10);
- ESP8266_Set("AT+CWMODE=2"); //設(shè)置路由器模式1 station,模式2 AP,模式3 station+AP混合模式
- ms_delay(500);
- // ESP8266_Set("AT+RST"); //重新啟動(dòng)wifi模塊
- // ms_delay(1000);
- ESP8266_Set("AT+CWSAP=\"wifi_yuan\",\"123456789\",11,4"); //AT+CWSAP="wifi_yuan","123456789",11,4 設(shè)置模塊SSID:WIFI, PWD:密碼 及安全類(lèi)型加密模式(WPA2-PSK)
- ms_delay(500);
- ESP8266_Set("AT+CIPMUX=1"); //開(kāi)啟多連接模式,允許多個(gè)各客戶(hù)端接入
- ms_delay(500);
- ESP8266_Set("AT+CIPSERVER=1,5000"); //啟動(dòng)TCP/IP 實(shí)現(xiàn)基于網(wǎng)絡(luò)//控制 ESP8266_Set("AT+CIPSERVER=1,5000");
- ms_delay(500);
- ESP8266_Set("AT+CIPSTO=0"); //永遠(yuǎn)不超時(shí)
- ms_delay(500);
- ES=1; //允許串口中斷
-
- while(1)
- {
-
-
- ///////////////////////////////////////////////////////////////////////////
- DHT11_start();//讀溫度
- if(Data==0)
- {
- while(Data==0); //等待拉高
- DHT11_delay_us(40); //拉高后延時(shí)80us
- R_H=DHT11_rec_byte(); //接收濕度高八位
- R_L=DHT11_rec_byte(); //接收濕度低八位
- T_H=DHT11_rec_byte(); //接收溫度高八位
- T_L=DHT11_rec_byte(); //接收溫度低八位
- revise=DHT11_rec_byte(); //接收校正位
- DHT11_delay_us(25); //結(jié)束
- if((R_H+R_L+T_H+T_L)==revise) //校正
- {
- RH=R_H;
- RL=R_L;
- TH=T_H;
- TL=T_L;
- }
- }
- /////////////////////////////////////////////////////////////////////////////////
-
- ms_delay(500);
- //處理溫度部分
- s=T_H*10;
- xm0=(s/100)%10;//存放百位數(shù)據(jù)
- xm1=(s/10)%10; //存放十位數(shù)據(jù)
- xm2=s%10; //存放個(gè)位數(shù)據(jù)
-
- table[6]=ta[xm0];
- table[7]=ta[xm1];
- table[9]=ta[xm2];
-
- //處理濕度部分
- s1=R_H*10;
- xm3=(s1/100)%10;//存放百位數(shù)據(jù)
- xm4=(s1/10)%10; //存放十位數(shù)據(jù)
- xm5=s1%10; //存放個(gè)位數(shù)據(jù)
-
- table[20]=ta[xm3];
- table[21]=ta[xm4];
- table[23]=ta[xm5];
-
-
- ESP8266_Set(table);//數(shù)據(jù)發(fā)送出去
- ms_delay(500);
-
- }
- }
- /*********************************************************************
- 名稱(chēng):串行通訊中斷 作用:發(fā)送或接收結(jié)束后進(jìn)入該函數(shù),對(duì)相應(yīng)的標(biāo)志位軟件清0,實(shí)現(xiàn)模塊對(duì)數(shù)據(jù)正常的收發(fā)。
- ********************************************************************/
- void Uart_Interrupt() interrupt 4
- {
- static uchar i=0;
- if(RI==1)
- {
- RI=0;
- Receive=SBUF; //MCU接收wifi模塊反饋回來(lái)的數(shù)據(jù)
- Recive_table[i]=Receive;
- if((Recive_table[i]=='\n'))
- {
- i=0;
- }
- else i++; //遇到換行 重新裝值
- ……………………
- …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼
所有資料51hei提供下載:
STC89溫濕度DHT11+APP+E4A+ESP8266無(wú)線(xiàn)OK.zip
(4.06 MB, 下載次數(shù): 1112)
2019-1-12 14:31 上傳
點(diǎn)擊文件名下載附件
|