精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

您好,歡迎來電子發(fā)燒友網(wǎng)! ,新用戶?[免費注冊]

您的位置:電子發(fā)燒友網(wǎng)>電子元器件>芯片引腳圖>

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

2018年05月24日 08:36 網(wǎng)絡(luò)整理 作者: 用戶評論(0

  esp8266引腳圖及功能

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

  ESP8266特性

  *802.11 b/g/n

  *內(nèi)置低功耗32位CPU:可以兼作應(yīng)用處理器

  *內(nèi)置10 bit高精度ADC

  *內(nèi)置TCP/IP協(xié)議棧

  *內(nèi)置TR開關(guān)、balun、LNA、功率放大器和匹配網(wǎng)絡(luò)

  *內(nèi)置PLL、穩(wěn)壓器和電源管理組件

  *支持天線分集

  *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設(shè)備)

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

  *深度睡眠保持電流為10 uA,關(guān)斷電流小于5 uA

  *2 ms之內(nèi)喚醒、連接并傳遞數(shù)據(jù)包

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

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

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

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

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

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

  ESP8266最小系統(tǒng)與單片機最小系統(tǒng)連接

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

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

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

  單片機程序編寫

  (1)首先定義如下變量/常量:

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

  #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];

  //接收計數(shù)變量

  u8 RX_num;

  /**********預(yù)定義字符串**************/

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

  u8 code esp_at[]=“AT ”;

  //設(shè)置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服務(wù)器,返回“Linked”

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

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

  // 設(shè)置發(fā)送數(shù)據(jù)長度

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

  //設(shè)置多鏈接

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

  //設(shè)置端口號

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

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

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

  //服務(wù)器發(fā)送 握手數(shù)據(jù)

  u8 code esp_Woshou []=“:test”;

  //服務(wù)器發(fā)送 LED檢測數(shù)據(jù)

  u8 code esp_test_LED []=“:LED”;

  //服務(wù)器發(fā)送 打開LED

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

  //服務(wù)器發(fā)送 關(guān)閉LED

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

  //復(fù)位重啟

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

  //發(fā)送數(shù)據(jù)長度

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

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

  //指定字符串與緩存數(shù)組數(shù)據(jù)進行數(shù)據(jù)比較

  //*p 要比較的指定字符串指針數(shù)據(jù)

  //返回:1 數(shù)據(jù)一致 0 數(shù)據(jù)不一致

  u8 Data_compare(u8 *p)

  {

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

  return 1;

  else

  return 0;

  }12345678910

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

  (2)端口初始化

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

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

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

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

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

  //相關(guān)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位數(shù)據(jù),可變波特率

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

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

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

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

  }

  //串口2發(fā)送串口數(shù)據(jù)(字節(jié))

  void Uart2SendByte(u8 ch)

  {

  S2BUF = ch; //寫數(shù)據(jù)到UART2數(shù)據(jù)寄存器

  while(!(S2CON&S2TI));

  S2CON&=~S2TI;

  }

  //串口2發(fā)送字符串

  void Uart2SendStr(u8 *s)

  {

  IE2 = 0x00;

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

  {

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

  }

  IE2 = 0x01;

  }

  //串口2中斷

  void Uart2() interrupt 8 using 1

  {

  IE2 = 0x00; //關(guān)閉串口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

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

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

  // 1 發(fā)送AT 進行握手

  while(1)

  {

  Uart2SendStr(esp_at); //串口2對wifi模塊發(fā)送握手指令 即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);//清緩存數(shù)據(jù)

  RX_num=0; //接收計數(shù)變量清0

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

  while(1)

  {

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

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

  delay1ms(600);

  }

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

  RX_num=0; //接收計數(shù)變量清0

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

  while(1)

  {

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

  if(Data_compare(“OK”))break;

  delay1ms(3000);

  }

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

  RX_num=0; //接收計數(shù)變量清0

  // 4 設(shè)置多鏈接

  while(1)

  {

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

  if(Data_compare(“OK”))break;

  delay1ms(3000);

  }

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

  RX_num=0; //接收計數(shù)變量清0

  // 5 設(shè)置端口號

  while(1)

  {

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

  if(Data_compare(“OK”))

  {

  delay1ms(3000);

  break;

  }

  delay1ms(3000);

  }

  Uart1SendStr(“OK,Succeed esp_Port ”);

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

  RX_num=0; //接收計數(shù)變量清0

  esp8266串口wifi實例

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

  引腳連接:

  GND:接地

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

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

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

  GPIO2、GPIO0:懸空

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

  調(diào)試:

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

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

  示例:

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

  code uchar at_1[14]={‘A’,‘T’,‘+’,‘C’,‘I’,‘P’,‘M’,‘U’,‘X’,‘=’,‘1’,0x0D,0x0A,‘