<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>

您好,歡迎來電子發燒友網! ,新用戶?[免費注冊]

您的位置:電子發燒友網>電子元器件>芯片引腳圖>

esp8266中文資料匯總(esp8266引腳圖_與單片機連接_串口wifi實例)

2018年05月24日 08:36 網絡整理 作者: 用戶評論(0

  esp8266引腳圖及功能

esp8266中文資料匯總(esp8266引腳圖_與單片機連接_串口wifi實例)
esp8266中文資料匯總(esp8266引腳圖_與單片機連接_串口wifi實例)
esp8266中文資料匯總(esp8266引腳圖_與單片機連接_串口wifi實例)

  ESP8266特性

  *802.11 b/g/n

  *內置低功耗32位CPU:可以兼作應用處理器

  *內置10 bit高精度ADC

  *內置TCP/IP協議棧

  *內置TR開關、balun、LNA、功率放大器和匹配網絡

  *內置PLL、穩壓器和電源管理組件

  *支持天線分集

  *STBC、1x1 MIMO、2x1 MIMO

  *A-MPDU、A-MSDU的聚合和0.4 s的保護間隔

  *WiFi @ 2.4 GHz,支持 WPA/WPA2 安全模式

  *支持STA/AP/STA+AP工作模式

  *支持Smart Config功能(包括AndroidiOS設備)

  *SDIO 2.0、(H) SPI、UART、I2C、I2S、IR Remote Control、PWM、GPIO

  *深度睡眠保持電流為10 uA,關斷電流小于5 uA

  *2 ms之內喚醒、連接并傳遞數據包

  *802.11b模式下+20 dBm的輸出功率

  *待機狀態消耗功率小于1.0 mW (DTIM3)

  *工作溫度范圍:-40°C - 125°C

  *通過 FCC, CE, TELEC, WiFi Alliance 及 SRRC 認證

  5V單片機與3.3V的ESP8266串口連接

esp8266中文資料匯總(esp8266引腳圖_與單片機連接_串口wifi實例)

  ESP8266最小系統與單片機最小系統連接

esp8266中文資料匯總(esp8266引腳圖_與單片機連接_串口wifi實例)

  在正常使用的時候,固件刷寫開關不需要打開,如果需要熱刷寫固件,可以考慮將刷寫固件的引腳與單片機的引腳相連。

  ESP8266內是一塊單片機,也可以通過模塊本身直接控制開關,本文僅使用模塊的TCP透傳功能,這里不再展開。

  單片機程序編寫

 ?。?)首先定義如下變量/常量:

  /**********類型定義**************/

  #define u8 unsigned char

  #define u16 unsigned int

  #define u32 unsigned long

  #define code const

  /***********IO定義***************/

  //定義P5.5口 LED指示燈

  sbit LED=P2^4;

  /**********緩存變量**************/

  //串口接受緩存

  u8 xdata RX_buffer[tbuf];

  //接收計數變量

  u8 RX_num;

  /**********預定義字符串**************/

  //握手連接指令,返回“OK”

  u8 code esp_at[]=“AT ”;

  //設置ESP8266的工作模式1 Station,返回“OK”或者“no change”

  u8 code esp_cwmode[]=“AT+CWMODE=1 ”;

  //連接到WiFi熱點或無線路由上,NXP為無線路由名稱,12345678為密碼;連接成功返回“OK”

  u8 code esp_cwjap[]=“AT+CWJAP=”NXP“,”123456789“ ”;

  //本機IP地址查詢指令

  u8 code esp_cifsr[]=“AT+CIFSR ”;

  //連接到TCP服務器,返回“Linked”

  //192.168.0.149為服務器IP地址 6000為服務器端口號 不同電腦不同軟件可能會不一樣的

  u8 code esp_cipsta[]=“AT+CIPSTART=”TCP“,”192.168.0.149“,6000 ”;

  // 設置發送數據長度

  u8 code esp_cipsend[]=“AT+CIPSEND=5 ”;

  //設置多鏈接

  u8 code esp_DuoLianjie []=“AT+CIPMUX=1 ”;

  //設置端口號

  u8 code esp_Port []=“AT+CIPSERVER=1,3122 ”;

  //查詢模塊自身IP,返回IP地址

  u8 code esp_IP []=“AT+CIFSR ”;

  //服務器發送 握手數據

  u8 code esp_Woshou []=“:test”;

  //服務器發送 LED檢測數據

  u8 code esp_test_LED []=“:LED”;

  //服務器發送 打開LED

  u8 code esp_LED_ON []=“:LED ON”;

  //服務器發送 關閉LED

  u8 code esp_LED_OFF []=“:LED OFF”;

  //復位重啟

  u8 code esp_Rst []=“AT+RST ”;

  //發送數據長度

  u8 code esp_DATA []=“AT+CIPSEND=1024 ”; 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152

  接下來是緩存字符串比較函數,用于判斷返回值中是否含有OK等來自ESP8266模塊的工作標識。如需用到更復雜的匹配,可以將之替換為正則表達式引擎。

  //指定字符串與緩存數組數據進行數據比較

  //*p 要比較的指定字符串指針數據

  //返回:1 數據一致 0 數據不一致

  u8 Data_compare(u8 *p)

  {

  if(strstr(RX_buffer,p)!=NULL)

  return 1;

  else

  return 0;

  }12345678910

  程序的變量已經定義完,接下來是介紹主程序的部分。

 ?。?)端口初始化

  51單片機部分無需初始化端口,另一部分需要初始化端口才能使用:

  //針對 IAP15W4K61S4 STC15W4K56S4 系列 IO口初始化

  //io口初始化 P0 P1 P2 P3 P4 為準雙向IO口

  //注意: STC15W4K32S4系列的芯片,上電后所有與PWM相關的IO口均為

  // 高阻態,需將這些口設置為準雙向口或強推挽模式方可正常使用

  //相關IO: P0.6/P0.7/P1.6/P1.7/P2.1/P2.2

  // P2.3/P2.7/P3.7/P4.2/P4.4/P4.5

  void IO_init(void)

  {

  P0M0 = 0X00;

  P0M1 = 0X00;

  P1M0 = 0X00;

  P1M1 = 0X00;

  P2M0 = 0X00;

  P2M1 = 0X00;

  P3M0 = 0X00;

  P3M1 = 0X00;

  P4M0 = 0X00;

  P4M1 = 0X00;

  }1234567891011121314151617181920212223

  串口配置及中斷配置:

  void UartInit(void)

  {

  S2CON = 0x50; //8位數據,可變波特率

  AUXR |= 0x04; //定時器2時鐘1為FOSC,即1T

  T2L=(65536-(11059200/4/115200)); //設置定時初值

  T2H=(65536-(11059200/4/115200))》》8; //設置定時初值

  AUXR |= 0x10; //啟動定時器2

  }

  //串口2發送串口數據(字節)

  void Uart2SendByte(u8 ch)

  {

  S2BUF = ch; //寫數據到UART2數據寄存器

  while(?。⊿2CON&S2TI));

  S2CON&=~S2TI;

  }

  //串口2發送字符串

  void Uart2SendStr(u8 *s)

  {

  IE2 = 0x00;

  while (*s) //檢測字符串結束標志

  {

  Uart2SendByte(*s++); //發送當前字符

  }

  IE2 = 0x01;

  }

  //串口2中斷

  void Uart2() interrupt 8 using 1

  {

  IE2 = 0x00; //關閉串口2中斷

  if (S2CON & S2RI)

  {

  S2CON &= ~S2RI;

  RX_buffer[RX_num] = S2BUF;

  RX_num++;

  if(RX_num》tbuf) RX_num = 0;

  }

  if (S2CON & S2TI)

  {

  S2CON &= ~S2TI;

  }

  IE2 = 0x01; //開啟串口2中斷

  }

  1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950

  調用這一段代碼中的UartInit(void) 函數初始化串口。

  全部初始化完畢后,就可以使用代碼對ESP8266配置了。

  // 1 發送AT 進行握手

  while(1)

  {

  Uart2SendStr(esp_at); //串口2對wifi模塊發送握手指令 即AT

  if(Data_compare(“OK”))break;

  else Uart1SendStr(“ERROR1,some problems with ESP8266 ”);

  delay1ms(600);

  }

  Uart1SendStr(“OK,mcu connection success with ESP8266! ”);

  memset(RX_buffer, 0, tbuf);//清緩存數據

  RX_num=0; //接收計數變量清0

  // 2 配置wifi工作模式為SA模式

  while(1)

  {

  Uart2SendStr(esp_cwmode); //串口2對wifi模塊工作模式進行設置

  if(Data_compare(“OK”)||Data_compare(“no change”))break;

  delay1ms(600);

  }

  memset(RX_buffer, 0, tbuf);//清緩存數據

  RX_num=0; //接收計數變量清0

  // 3 連接熱點wifi wifi名 密碼 如果失敗 延時繼續連接

  while(1)

  {

  Uart2SendStr(esp_cwjap); //串口2發送 指點wifi名 密碼 等待模塊連接

  if(Data_compare(“OK”))break;

  delay1ms(3000);

  }

  memset(RX_buffer, 0, tbuf);//清緩存數據

  RX_num=0; //接收計數變量清0

  // 4 設置多鏈接

  while(1)

  {

  Uart2SendStr(esp_DuoLianjie); //設置多鏈接

  if(Data_compare(“OK”))break;

  delay1ms(3000);

  }

  memset(RX_buffer, 0, tbuf);//清緩存數據

  RX_num=0; //接收計數變量清0

  // 5 設置端口號

  while(1)

  {

  Uart2SendStr(esp_Port); //設置端口號

  if(Data_compare(“OK”))

  {

  delay1ms(3000);

  break;

  }

  delay1ms(3000);

  }

  Uart1SendStr(“OK,Succeed esp_Port ”);

  memset(RX_buffer, 0, tbuf);//清緩存數據

  RX_num=0; //接收計數變量清0

  esp8266串口wifi實例

esp8266中文資料匯總(esp8266引腳圖_與單片機連接_串口wifi實例)

  引腳連接:

  GND:接地

  GPIO16:其實是RST,低電平復位,所以為了正常工作,直接連接VCC即可

  VCC:接3.3V,看過其他教程說不能接5V,不過小編有試過直接用5V來把玩,玩了一段時間都沒啥問題,可以正常使用。但是有個問題就是芯片很燙,所以用久了可能會燒壞模塊,而且wifi模塊一過熱,連接會很慢。所以,盡量用3.3V。

  UTXD、URXD:前者接單片機或USB轉串口模塊的RXD,后者接TXD。這兩個可以和5V單片機的RXD、TXD連接,經測試通信正常,無需5V轉3,3V

  GPIO2、GPIO0:懸空

  CH_PD:看一些教程說可以直接接VCC,但經測試不行,電流太大了,所以要經電阻連接到VCC,也就是串聯個電阻然后電阻再接到VCC,電阻的阻值:數k。小編用4.7k,其實這個沒什么嚴格限制

  調試:

  調試用的是USB轉串口模塊,根據上面的引腳連接配合面包板進行連接。然后就可以插電腦開串口助手來調試了。波特率的話得自己試,有可能是9600或115200,甚至是其他的。小編有一塊是9600一塊是115200。怎么試呢?在串口助手勾發送新行,然后發送AT+RST,如果先出現一堆亂碼最后帶個ready則說明試對了。然后說明該模塊正常是什么大問題了,還不放心的話還可以嘗試其他AT指令配合TCP調試工具來測試。

esp8266中文資料匯總(esp8266引腳圖_與單片機連接_串口wifi實例)

  示例:

  用單片機通過該模塊和上位機通信的例子(AP模式)

  code uchar at_1[14]={‘A’,‘T’,‘+’,‘C’,‘I’,‘P’,‘M’,‘U’,‘X’,‘=’,‘1’,0x0D,0x0A,‘亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看

<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>