ESP 8266 WIFIモジュールStationモードはデータの相互伝送を実現する——ソースコード付き
17155 ワード
最近RFIDのカリキュラムの設計はWIFIモジュールを試してみましたが、最も主要な機能はくだらないことではありません.直接コードをつけて、水を持ってはいけません.
宣言ポイント:1.WIFIモジュール応答のデータは+IPDで始まり,プロトコルには1バイトの計算データ量ビットが含まれる判別とすることができる.2.以上はLCDの表示を削除した後、直接使用することができる.3.WIFIモジュールが返すIPアドレスの25バイト目はIPの先頭アドレスである.次のように受け入れられます.
このコードは、モジュール変更と握手を確立した後、WIFIから上位機にデータを送信することを実現することができる:|
注意0,8では、8バイトを一度に送信すると、ある配列へのアクセスが停止し、演算が続行されます.
これはシリアルポートがデータを送信するコードの一部で、デバッグしなくても直接使用できます.
qq:1363658871、プライベートで直接発注します.現在、ASで上位機を書いています.
void WIFI_Init()
{
int i;
ESP8266_Set("AT"); //
ms_delay(2000);
ESP8266_Set("AT+CWMODE_CUR=1");// Station , WIFI Client
ms_delay(2000);
ESP8266_Set("AT+CWLAP");
ms_delay(2000);
ESP8266_Set("AT+CWJAP_CUR=\"TP-LINK_E4DA\",\"lipengyu0721\"");// +
ms_delay(20000);
flag=1;
ESP8266_Set("AT+CIFSR"); // WIFI IP ,
ms_delay(2000);
for(i=0;i<15;i++) //LCD WIFI IP , WIFI 25 IP
{
LcdWriteData(Recive_Cmd[i]);
}
flag=0;
if((Recive_Cmd[1]=='1')&&(Recive_Cmd[2]=='9')&&(Recive_Cmd[3]=='2'))
{
LcdWriteCom(0x40+0x80);
for(i=0;i<16;i++)
{
LcdWriteData(Disp[i]);
}
}
ESP8266_Set("AT+CIPMUX=1"); //
ms_delay(2000);
ESP8266_Set("AT+CIPSERVER=1,8888"); // Client TCP
ms_delay(2000);
}
宣言ポイント:1.WIFIモジュール応答のデータは+IPDで始まり,プロトコルには1バイトの計算データ量ビットが含まれる判別とすることができる.2.以上はLCDの表示を削除した後、直接使用することができる.3.WIFIモジュールが返すIPアドレスの25バイト目はIPの先頭アドレスである.次のように受け入れられます.
void Uart_Interrupt() interrupt 4
{
static uchar i=0;
if(RI==1)
{
ES = 0;
RI=0;
if(flag==1) //Accept IP address
{
i++;
if(i>24) // 25 IP
{
Recive_Cmd[t]=SBUF;
t++;
if(i>41)
{
flag=0;
}
}
}
このコードは、モジュール変更と握手を確立した後、WIFIから上位機にデータを送信することを実現することができる:|
void ESP8266_Sent(uchar *puf) // *puf
{
ESP8266_Set("AT+CIPSEND=0,8"); //0,8 8
while(*puf!='\0') //
{
Send_Uart(*puf); // WIFI 。
us_delay(5);
puf++;
}
us_delay(5);
Send_Uart('
'); //
ms_delay(10);
}
注意0,8では、8バイトを一度に送信すると、ある配列へのアクセスが停止し、演算が続行されます.
これはシリアルポートがデータを送信するコードの一部で、デバッグしなくても直接使用できます.
void Send_Uart(uchar value)
{
ES=0; //
TI=0; //
SBUF=value; //
while(TI==0); //
TI=0; //
ES=1; //
}
void ESP8266_Set(uchar *puf) // *puf
{
while(*puf!='\0') //
{
Send_Uart(*puf); // WIFI 。
us_delay(5);
puf++;
}
us_delay(5);
Send_Uart('\r');//
us_delay(5);
Send_Uart('
'); //
ms_delay(1000);
}
void Character_Send(uchar *puf)
{
while(*puf!='\0') //
{
Send_Uart(*puf); // WIFI 。
us_delay(5);
puf++;
}
}
次はTCPネットワークデバッグアシスタントです。
qq:1363658871、プライベートで直接発注します.現在、ASで上位機を書いています.