ESP 8266 WIFIモジュールStationモードはデータの相互伝送を実現する——ソースコード付き

17155 ワード

最近RFIDのカリキュラムの設計はWIFIモジュールを試してみましたが、最も主要な機能はくだらないことではありません.直接コードをつけて、水を持ってはいけません.
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で上位機を書いています.