乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      ESP8266系列WIFI模塊的使用·

       旭日東升4k165w 2019-09-06

      一、概述

      ESP8266是由樂鑫公司出品的一款物聯(lián)網(wǎng)芯片,因?yàn)閮r格較低,性能穩(wěn)定等收到很大關(guān)注。該芯片可工作于三種種模式下,分別是:AP模式,station模式以及混合模式,通過常用的AT指令進(jìn)行控制。自芯片面世以來發(fā)行過多種型號。單單我用過的就有ESP8266-01,ESP8266-12F,ESP8266-12E這三種。當(dāng)然,我沒接觸到過的型號還有很多。在使用這三種芯片時均是使其工作在AP模式下。所以,就拿這三個型號說一下ESP8266在AP模式下的配置吧(AP模式下通信協(xié)議為TCP,也就是說AP模式下的ESP8266相當(dāng)于一個TCP服務(wù)器)。

      二、ESP8266-01

      因?yàn)镋SP8266-01是比較早的型號,所以也存在諸多不完善的地方。一開始用的時候也走過很多彎路,例如:ESP8266-01型號不支持1200及2400的波特率(網(wǎng)上的資料說是支持的),就因?yàn)檫@個原因就玩壞了三塊芯片,將近100人民幣就打水漂了(幸虧指導(dǎo)老師還安慰我,學(xué)習(xí)的過程就是消耗的過程),一開始不知道什么原因,后來才發(fā)現(xiàn)是波特率的問題。因?yàn)橐婚_始的測試用的普中V3.0的學(xué)習(xí)版,該板搭載的是12.0Mhz的晶振,而且身邊也沒有可以換的11.0592Mhz的晶振,沒辦法才選擇了2400的波特率,最終導(dǎo)致三塊ESP8266-01壞掉。而且壞掉后上電就出現(xiàn)亂碼,這些亂碼用“格西烽火串口助手”中的所有波特率都讀不出來所以一旦出問題無法修復(fù)。另外,該芯片對電壓要求出奇的高,標(biāo)準(zhǔn)3.3V,一點(diǎn)小的電壓波動都會引起模塊工作異常。網(wǎng)上曾有一種說法,“十個不能正常工作的芯片中就有八個是電壓問題引起的”。(ESP8266-01的接線圖如下)


      三、ESP8266-12F

      ESP8266-12F相比于ESP8266-01有很多改進(jìn)。首先12F的flash閃存比較大,另外12F支持機(jī)智云的MCU運(yùn)行。當(dāng)然,與增加的功能相適應(yīng),12F增加了很多IO口,一般是16個。但工作在AP模式下,二者并沒有本質(zhì)區(qū)別。但是12F有一個缺點(diǎn)就是需要自己搭建一些簡單的外圍電路。(接線圖如下)

      四、ESP8266-01與ESP8266-12F工作在AP模式下的配置命令。

      1.基本配置命令:

      AT+CIOBAUD=******//修改波特率為********(模塊初始波特率默認(rèn)為115200,該命令通過串口助手發(fā)送,重新上電后有效)

      AT+CWMODE=2//設(shè)置模塊為AP模式

      AT+CWSAP='111','222',11,0//設(shè)置wifi名字為111,密碼是222,通道號是11,加密方式是OPEN(可以修改)

      AT+CIPMUX=1//啟動多路連接方式(可以修改)

      AT+CIPSERVER=1,5000//開啟server,端口號為5000(可以修改)

      AT+CIPSEND=0,5//向id為0的鏈接發(fā)送5字節(jié)數(shù)據(jù)(可以修改)

      2.單片機(jī)控制程序:單片機(jī)型號為STC89C52RC,晶振11.0592MHz,波特率為9600(控制程序均為自己編寫且測試有效)

      #include<reg51.h>

      void Serial_Inti();//初始化程序(必須使用,否則無法收發(fā))

      void Uart_Sends(unsigned char *str);//發(fā)送char型字符串

      //void Delay1ms(unsigned int t);//1ms延時函數(shù)

      unsigned char Uart_Receive();//接收字符子函數(shù)

      void Uart_Dat(unsigned char dat);//數(shù)據(jù)發(fā)送子函數(shù)

      void Wifi_Init();//wifi模塊初始化

      void Uart_Byte(char byte);//字節(jié)發(fā)送子函數(shù)

      void Delay1ms(unsigned int t);//t ms延時子函數(shù)

      /*串口初始化子函數(shù)*/

      void Serial_Inti()//串口初始化,一定注意不要啟動T1的串口中斷

      {

          TMOD = 0x20;

          SCON = 0x50;

          TH1 = 0xFD;

          TL1 = TH1;

          PCON = 0x00;

      ES=0;//關(guān)閉串口中斷

          TR1 = 1;

      }

      /*字符串發(fā)送子函數(shù)(用于配置)*/

      void Uart_Sends(unsigned char *str)

      {

      while(*str!='\0')

      {

      SBUF=*str;

      while(!TI);//等待發(fā)送完成信號(TI=1)出現(xiàn)

      TI=0;//清除發(fā)送中斷標(biāo)志位以繼續(xù)發(fā)送

      str++;

      }

      }

      /*WIFI模塊初始化*/

      void Wifi_Init()

      {

      Delay1ms(3000);

      Serial_Inti();

      Uart_Sends('AT+CWMODE=2\r\n');

      Delay1ms(2000);

      Uart_Sends('AT+CWSAP=\'******\',\'*****\',11,0\r\n');//wifi名稱及密碼設(shè)置

      Delay1ms(2000);

      Uart_Sends('AT+CIPMUX=1\r\n');

      Delay1ms(2000);

      Uart_Sends('AT+CIPSERVER=1,5000\r\n');

      }

      /*字節(jié)發(fā)送子函數(shù)*/

      void Uart_Byte(char byte)

      {

      SBUF=byte;

      while(!TI);

      TI=0;

      }

      /*數(shù)據(jù)發(fā)送子函數(shù)*/

      void Uart_Dat(unsigned char dat)

      {

      Uart_Sends('AT+CIPSEND=0,1\r\n');

      Delay1ms(1000);

      Uart_Byte(dat);

      Uart_Byte('\r');

      Uart_Byte('\n');

      Delay1ms(100);//延時100ms防止出現(xiàn)循環(huán)發(fā)送現(xiàn)象

      }

      /*指令接收子函數(shù)*/

      unsigned char Uart_Receive()

      {

      unsigned char order;

      RI=0;//先將接收表示位置0,防止wifi'配置使的返回信息將其置1

      while(!RI);//等待接收到信息后跳出循環(huán)

      order=SBUF;//當(dāng)RI==1時接收到數(shù)據(jù)

      RI=0;//清除接收中斷標(biāo)志位以繼續(xù)接收

      return order;

      }

      void Delay1ms(unsigned int t)   //誤差 0us

      {

          unsigned char a,b,c;

      for(t;t>0;t--)

          for(c=1;c>0;c--)

              for(b=142;b>0;b--)

                  for(a=2;a>0;a--);

      }

      五、ESP8266-12E CP2102

      剛開始使用ESP8266-12E CP2102時很蒙,因?yàn)楹附釉贑P2102板上之后原來的操作方式就不再適用。經(jīng)過摸索發(fā)現(xiàn)了一個比較合適的而且好用的固件ESP8266_Doit_ser2net(v2.4).bin。所以方向很明確,要給12E刷新固件。首先ESP8266-12E CP2102長這樣:

      用USB線連接PC,下載工具為flash_download_tool_v1.2_150512.exe,選擇ESP8266_Doit_ser2net(v2.4).bin,下載地址為0x00000,按住Falsh鍵不放,然后按Reset鍵,使芯片進(jìn)入下載模式,點(diǎn)擊軟件上的START開始下載,下載完成后重新上電。(如下圖)

      下載成功重新上電后就會發(fā)現(xiàn)這個固件的好處。連接wifi訪問192.168.4.1就會出現(xiàn)以下界面

      在該界面可以直接設(shè)置芯片的波特率以及AP模式下的配置,省去了麻煩的AT命令。所以,ESP8266-12E CP2102是我目前為止用到的最好用的ESP8266系列模塊。

      當(dāng)然,我所涉及到的只是ESP8266的冰山一角,期待以后更加深入的學(xué)習(xí)!

      左肩理想,右肩擔(dān)當(dāng)。君子不怨永遠(yuǎn)不會停下腳步!

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多