1.概述
ESP8266 系列無線模塊是安信可科技自 主研發設計的一系列高性價比 WiFi SOC 模組。該系列模塊支持標準的 IEEE802.11 b/g/n 協議, 內置完整的 TCP/IP 協議棧。 用戶可以使用該系列模塊為現有的設備添加聯網功能, 也可以構建獨立的網絡控制器。
特性:
- 完整的802. 11b/g/n Wi-Fi SoC模塊;
- 內置 Tensilica L106 超低功耗32位微型MCU,主頻支持 80 MHz和160 MHz,支持RTOS;
- 內置1路10 bit高精度ADC;
- 支持UART/GPIO/ADC/PWM/SPI/I2C接口;
- 采用SMD-22封裝;
- 集成Wi-Fi MAC/ BB/RF/PA/LNA;
- 支持多種休眠模式,深度睡眠電流低至 20uA
- 串口速率最高可達4Mbps;
- 內嵌Lwip協議棧;
- 支持 STA/AP/STA+AP工作模式;
- 支持安卓、IOS的Smart Config(APP) /AirKiss(微信)一鍵配網;
- 支持串口本地升級和遠程固件升級(FOTA);
- 通用AT指令可快速上手;
- 支持二次開發,集成了Windows、Linux開發環境;
硬件接口:
引腳 |
說明 |
TXD0 |
PC11串口3接收腳 |
RXD0 |
PC10串口3發送腳 |
2.通訊協議
本模塊采用串口通訊方式,波特率115200,1位起始信號+8位數據位+1位停止位,無校驗位,AT指令集開發。
AT 指令可以細分為四種類型:
類型 |
指令格式 |
描述 |
測試指令 |
AT+=? |
該命令?于該命令?于查詢設置指令的參數以及取值范圍。 |
查詢指令 |
AT+? |
該命令?于返回參數的當前值。 |
設置指令 |
AT+=<...> |
該命令?于設置?戶?定義的參數值。 |
執行指令 |
AT+ |
該命令?于執?受模塊內部程序控制的變參數不可變的功能。 |
注意:
- 不是每條AT指令都具備上述4種類型命令。
- 括號內為缺省值,不必填寫或者可能不顯示。使用雙引號表示字符串數據,例如:AT+CWSAP=”ESP56290”,”21030826”,1,4
- 默認波特率為115200。
- AT指令必須大寫,并且以回車換行符結尾(CRLF)。
3.常用AT指令
(1)測試指令AT
執行指令 |
AT |
響應 |
OK |
參數說明 |
- |
(2)重啟模塊AT+RST
執行指令 |
AT+RST |
響應 |
OK |
參數說明 |
- |
(3)開關回顯ATE
執行指令 |
ATE |
響應 |
OK |
參數說明 |
ATE0:關閉回顯 ATE1:開啟回顯 |
(4)AT+CWMODE_DEF設置WIFI模式并保存到Flash
指令 |
測試指令: AT+CWMODE_DEF=? |
查詢指令: AT+CWMODE_DEF? 功能:查詢當前WIFI模式 |
設置指令: AT+CWMODE_DEF= 功能:設置當前wifi模式 |
響應 |
+CWMODE_DEF:取值列表 OK |
+CWMODE_DEF: OK |
OK |
參數 |
1:Station模式 2:SoftAP模式 3:SoftAP+Station模式 |
||
注意 |
本設置保存到Flash system parameter區域, |
||
示例 |
AT+CWMODE_DEF=3 |
(5)AT+CWJAP_DEF 連接AF,保存到Flash
指令 |
查詢指令: AT+CWJAP_DEF? 功能:查詢WIFI已連接的AP信息 |
設置指令: AT+CWJAP_DEF=,,[,bassid,] 功能:設置需要連接的AP |
響應 |
+CWJAP_DEF:,,, |
OK |
參數 |
:字符串參數,AP的SSID |
:?標AP的SSID
:密碼最?64字節ASCII
有多個SSID相同的AP的情況;
open的路由器,可?于PCI認證 |
注意 |
本設置保存到 Flash系統參數區。 | |
示例 |
AT+CWJAP_DEF="abc","0123456789" |
(6)AT+CIPMUX 設置多連接
指令 |
查詢指令: AT+CIPMUX? |
設置指令: AT+CIPMUX=
|
響應 |
+CIPMUX: OK |
OK |
參數 |
? 0:單連接模式 |
|
注意 |
?默認為單連接; |
|
示例 |
AT+CIPMUX=1 |
(7)AT+CIPMODE 設置傳輸模式
指令 |
查詢指令: AT+CIPMODE? 功能:查詢傳輸模式 |
設置指令: AT+CIPMODE= 功能:設置傳輸模式 |
響應 |
+CIPMODE: OK |
OK |
參數 |
? 0:普通傳輸模式 |
|
注意 |
?本設置不保存到Flash。 |
|
示例 |
AT+CIPMODE=1 |
(8)AT+CIFSR查詢本地IP
指令 |
AT+CIFSR |
響應 |
|
參數 |
: |
注意 |
ESP8266 Station IP 需連上AP 后,才可以查詢。 |
(9)AT+CIPSTART 建立TCP連接、UDP傳輸或者SSL連接
指令 |
TCP 單連接(AT+CIPMUX=0)時: [,] |
TCP 多連接(AT+CIPMUX=1) 時: [,] |
響應 |
OK |
|
參數 |
? :?絡連接ID (0 ~ 4),?于多連接的情況 |
|
示例 |
AT+CIPSTART="TCP","iot.espressif.cn",8000 |
(10)AT+CIPSEND發送數據
指令 |
設置指令: |
執?指令:AT+CIPSEND 功能:在透傳模式時,開始發送數據。 |
響應 |
發送指定?度的數據。 開始接收串?數據,當數據?度滿 時發送數據,回到普通指令模 式,等待下?條AT指令。 若未建?連接或連接被斷開,返回:ERROR 如果數據發送成功,返回:SEND OK 如果數據發送失敗,返回:SEND FAIL |
收到此命令后先換?返回 >。 進?透傳模式發送數據,每包最?2048字
節,或者每包數據以20 ms間隔區分。 指令模式。發送 +++ 退出透傳時,請?少 間隔 1秒再發下?條AT指令。 本指令必須在開啟透傳模式以及單連接
下使?。 必須為0。 |
參數 |
? :?絡連接ID號(0 ~ 4),?于多連接的情況 |
- |
示例 |
- |
(11)AT+AT+CWSAP_DEF 設置SoftAP參數并保存到flash
指令 |
查詢指令: |
設置指令: |
響應 |
+CWSAP_DEF:,,,,, |
OK |
參數 |
? :字符串參數,接?點名稱
8 ~ 64 字節ASCII |
同左。 |
注意 |
本設置保存到 Flash system parameter區域。 |
|
示例 |
AT+CWSAP_DEF="ESP8266","1234567890",5,3 |
(12)AT+CIPSERVER建?TCP服務器
指令 |
AT+CIPSERVER=[,] |
響應 |
OK |
參數 |
? : ? :端?號,默認為333。 |
注意 |
?多連接情況下(AT+CIPMUX=1),才能開啟TCP服務器。 |
示例 |
AT+CIPMUX=1 |
(13) 創建TCP服務器配置示例
"ATrn",//測試指令
"ATE0rn",//關閉回顯
"AT+CWMODE_DEF=2rn",//--設置為AP(熱點)模式
"AT+RSTrn",//模塊重啟
"ATE0rn",//關閉回顯
"AT+CWSAP="EPS8266_123","01234567",1,4rn", //--設置wifi信息
"AT+CIPMUX=1rn",//設置多連接
"AT+CIPSERVER=1,10rn", //--設置TCP服務器模式,端口號(0~65535)
"AT+CIFSRrn"http://查詢IP地址
(14) 創建TCP客戶端示例
"ATrn",//測試指令
"ATE0rn",//關回顯
"AT+CWMODE=1rn",//設置STA模式
"AT+RSTrn",//模塊復位
"ATE0rn",//關回顯
"AT+CWJAP="HUAWEIshui","asdfghjkl12"rn",//連接wifi
"AT+CIPMUX=0rn",//設置單連接
"AT+CIFSRrn",//查詢IP
"AT+CIPSTART="TCP","192.168.43.204",8080rn",//連接服務器
"AT+CIPMODE=1rn",//設置透傳模式
"AT+CIPSENDrn",//開始發送數據
4.WIFI配置示例
硬件資源:STM32F103RET6
通訊方式:串口通訊(USART3)
4.1 硬件配置
ESP8266通訊接口為串口3,波特率115200,1位起始信號+8位數據位+1位停止位,無校驗位。
配置完成,生成代碼。
4.2 DMA接收處理示例
通過DMA處理串口數據接收。
uint8_t usart3_rx_buff[1024];//串口1接收數據緩沖區
uint16_t usart3_cnt=0;//保存數組下班
uint8_t usart3_flag;//接收完成標志符
/*************************串口接收數據函數********************/
static void Usart3_Receive_Data(void)
{
DMA1_Channel3->CCR&=~(1<<0);//關閉通道傳輸
usart3_cnt=1024-DMA1_Channel3->CNDTR;//獲取接收到是字符長度
if(usart3_cnt>=1024)usart3_cnt=0;
DMA1->IFCR|=1<<9;//清除標志位
DMA1_Channel3->CNDTR=1024;//從新賦值
DMA1_Channel3->CCR|=1<<0;//開啟通道傳輸
usart3_flag=1;
}
串口中斷服務函數如下:
void USART3_IRQHandler(void)
{
/* USER CODE BEGIN USART3_IRQn 0 */
uint8_t c;
/* USER CODE END USART3_IRQn 0 */
HAL_UART_IRQHandler(&huart3);
/* USER CODE BEGIN USART3_IRQn 1 */
if(__HAL_UART_GET_FLAG(&huart3,UART_FLAG_IDLE))
{
c=huart3.Instance->DR;
c=c;
Usart3_Receive_Data();
}
/* USER CODE END USART3_IRQn 1 */
}
-
控制器
+關注
關注
112文章
16444瀏覽量
179027 -
物聯網
+關注
關注
2912文章
44910瀏覽量
375865 -
STM32
+關注
關注
2270文章
10923瀏覽量
357072 -
開發板
+關注
關注
25文章
5121瀏覽量
97970 -
ESP8266
+關注
關注
50文章
962瀏覽量
45249
發布評論請先 登錄
相關推薦
評論