0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

STM32 OTA例程中的WiFi芯片ESP8266

STM32單片機 ? 來源:工程師曾玲 ? 2019-02-02 16:45 ? 次閱讀

前言

這一節(jié),我們來聊聊STM32的FOTA例程中用到的WiFi芯片ESP8266。這里涉及到一個基于該芯片的WiFi模塊ESP-01。它是安信可公司基于ESP8266 芯片的WiFi模塊。在STM32 FOTA Demo工程里,我們用它來實現(xiàn)無線通信。下面先來認識一下該模塊,然后在Demo里重點介紹基于ESP8266 芯片相關底層驅動的實現(xiàn)過程。

ESP-01模塊

ESP-01模塊集成ESP8266EX WiFi芯片,支持802.11b/g/n協(xié)議,支持UART/GPIO等接口,內(nèi)嵌LwIP協(xié)議棧,支持STA/AP/STA+AP工作模式,是一款低成本的無線模塊。

ESP-01模塊采用DIP-8封裝。尺寸和引腳定義見下圖。提供一個UART接口和兩個GPIO口。

STM32 OTA例程中的WiFi芯片ESP8266

STM32F769探索板的CN2接口支持對ESP-01模塊的擴展,可以直接將ESP-01模塊插在CN2接口上。STM32F769和ESP-01之間通過串口通信,串口配置為:115200波特率,8位數(shù)據(jù)位,無奇偶校驗,1位停止位。連接如下:

STM32 OTA例程中的WiFi芯片ESP8266

AT指令格式

ESP-01的AT指令集就是ESP8266的AT指令集??梢约毞譃樗姆N類型:

STM32 OTA例程中的WiFi芯片ESP8266

要注意的是,不是每條AT指令都具備上面4種類型,具體要去看該條AT指令的說明。

使用雙引號表示字符串數(shù)據(jù)。比如“123”,就是一個字符串,而123就是數(shù)字。

開頭的AT指令兩個字符必須大寫,每條命令以回車換行符結尾“\r\n”

ESP8266的AT指令集又分為:基礎AT命令(對模塊的配置,串口設置等),WiFi功能AT命令(設置WiFi模式,連接AP等),TCP/IP功能AT命令(建立TCP連接,收發(fā)數(shù)據(jù)等)。

作為TCP客戶端工作

模塊初始化

程序上電運行后,在開始使用WiFi模塊前,必須先對其進行初始化。除了GPIO口以及串口的初始化外,還需要對WIFI模塊進行配置,使其工作在我們希望的模式下。在STM32 FOTA Demo里ESP8266應該工作在STATION模式和多連接模式下。所以在初始化的時候,需要通過相應的AT指令進行配置。下面是初始化的代碼以及AT指令執(zhí)行的過程。

STM32 OTA例程中的WiFi芯片ESP8266

STM32 OTA例程中的WiFi芯片ESP8266

連接到AP

STM32 OTA例程中的WiFi芯片ESP8266

STM32 OTA例程中的WiFi芯片ESP8266

上圖的黃色部分是WiFi模塊的返回狀態(tài)。必須要接收到"OK\r\n",才能去讀取IP地址。連接WiFi熱點的過程,需要的時長不一定,有時2、3秒,有時6、7秒。所以這里最好把等待的時間 留長一點,否則經(jīng)常會出現(xiàn)連接WiFi熱點失敗的情況。

與服務器建立連接

連接到WiFi熱點后,就可以開始與服務器建立連接了。ESP8266支持5個并發(fā)連接。

一般我們知道的不是目標服務器的IP地址,而是域名。所以在開始創(chuàng)建連接之前需要先通過DNS服務獲該取域名對應的IP地址。ESP8266也提供了相應的AT指令。

下面是代碼中的一段和建立連接相關的代碼:

STM32 OTA例程中的WiFi芯片ESP8266

STM32 OTA例程中的WiFi芯片ESP8266

發(fā)送數(shù)據(jù)

發(fā)送數(shù)據(jù)過程分兩步:

1.發(fā)送AT+CIPSEND=,命令。說明要往哪個socket通道,發(fā)送多少字節(jié)的數(shù)據(jù)。

2.收到WiFi模塊返回的"OK\r\n>"后,再發(fā)送數(shù)據(jù)。

下面是例程中,ESP8266發(fā)送數(shù)據(jù)的代碼實現(xiàn)。

STM32 OTA例程中的WiFi芯片ESP8266

STM32 OTA例程中的WiFi芯片ESP8266

接收數(shù)據(jù)的模式

STM32 OTA例程中的WiFi芯片ESP8266

注意:該示例中MQTT和HTTP應用都在一個task里面調(diào)用,如果在不同的task實現(xiàn),接收驅動需要做相應修改。

小結

在例程中,和WiFi模塊相關的驅動由三層組成:

在ESP8266_io.c中,是最底層的跟STM32外設打交道的部分。包括初始化引腳,從串口讀取和發(fā)送數(shù)據(jù);

Esp8266.c中是對AT指令的實現(xiàn)。

Wifi.c是WiFi底層驅動和上層的一個接口。我們可以看到它的函數(shù)和ESP8266.c中的某些函數(shù)名字都很類似。

我們前面講的內(nèi)容基本都在這三個文件中,對于如果想更換WIFI模塊來講,它主要涉及到的代碼也就是這三部分。

STM32 OTA例程中的WiFi芯片ESP8266

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 接口
    +關注

    關注

    33

    文章

    8249

    瀏覽量

    149939
  • STM32
    +關注

    關注

    2257

    文章

    10826

    瀏覽量

    352428
  • WIFI
    +關注

    關注

    81

    文章

    5256

    瀏覽量

    201688

原文標題:STM32 OTA例程之ESP8266:你會不會正確使用?

文章出處:【微信號:STM32_STM8_MCU,微信公眾號:STM32單片機】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    ESP8266AT命令例程

    wifi模塊ESP8266 的AT命令例程,很實用的技術文檔,可以看看
    發(fā)表于 11-02 10:47 ?221次下載

    低功耗WIFI芯片ESP8266規(guī)格書

    低功耗WIFI芯片ESP8266規(guī)格書,需要的可以看看 免積分
    發(fā)表于 11-02 10:47 ?246次下載

    ESP8266串口WIFI

    esp8266圖文,AT例程?。。。。。。。。?!
    發(fā)表于 11-10 17:09 ?0次下載

    使用esp8266實現(xiàn)STM32聯(lián)網(wǎng)(最簡單USART方法)

    上一篇 esp8266怎么配置esp8266和USB轉TTL連接esp8266簡單介紹esp8266連接路由器esp8266通過路由器連接在
    發(fā)表于 11-22 11:51 ?1.2w次閱讀

    ESP8266-WIFI-SmartPlug官方例程使用教程

    ESP8266-WIFI-SmartPlug官方例程使用教程
    發(fā)表于 01-25 10:19 ?12次下載

    使用STM32控制ESP8266手機wifi開啟窗戶的詳細資料合集免費下載

    通過STM32F103控制ESP8266wifi模塊,進行遠程手機控制家內(nèi)窗戶開啟關閉,不包含窗戶狀態(tài)返回。STM32控制ESP8266手機wifi
    發(fā)表于 11-21 08:00 ?111次下載
    使用<b class='flag-5'>STM32</b>控制<b class='flag-5'>ESP8266</b>手機<b class='flag-5'>wifi</b>開啟窗戶的詳細資料合集免費下載

    如何將ESP8266連接到WiFi

    在之前的ESP8266項目中,我簡要介紹了ESP8266 WiFi模塊,如何開始使用ESP8266和Arduino,ESP8266
    的頭像 發(fā)表于 07-29 11:32 ?8.7w次閱讀
    如何將<b class='flag-5'>ESP8266</b>連接到<b class='flag-5'>WiFi</b>

    ESP8266 WIFI芯片的程序免費下載

    本文檔的主要內(nèi)容詳細介紹的是ESP8266 WIFI芯片的程序免費下載。
    發(fā)表于 12-03 15:05 ?94次下載

    WIFI ESP8266模塊的詳細資料合集免費下載

    本文檔的主要內(nèi)容詳細介紹的是普WIFI ESP8266模塊的詳細資料合集免費下載包括了:ESP8266-WIFI參考資料(AT指令使用示例,ESP
    發(fā)表于 03-03 08:00 ?104次下載
    普<b class='flag-5'>中</b><b class='flag-5'>WIFI</b> <b class='flag-5'>ESP8266</b>模塊的詳細資料合集免費下載

    ESP8266 wifi模塊開發(fā)匯總

    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ESP8266 wifi模塊開發(fā)匯總?ESP8266 wifi模塊開發(fā)匯總本文檔主要介紹開發(fā)者在
    發(fā)表于 11-05 19:21 ?187次下載
    <b class='flag-5'>ESP8266</b> <b class='flag-5'>wifi</b>模塊開發(fā)匯總

    STM32-ESP8266wifi模塊實現(xiàn)

    1.ESP8266WiFi模塊介紹1.1ESP8266wifi 模塊低功耗串口WiFi模塊ESP8266內(nèi)置一個Tensilica(泰思立達) Xtensa架構的32位處理器L106,
    發(fā)表于 11-19 13:06 ?79次下載
    <b class='flag-5'>STM32-ESP8266wifi</b>模塊實現(xiàn)

    解決esp8266 Mircopython OTA 遠程升級方案

    一下esp8266運行的程序,然后過程查找了許多的資料都沒有看到Mircopython平臺上如何OTA升級esp8266固件,于是自己胡亂做了一個用起來還不錯的替代方案,給愛好者們提
    發(fā)表于 12-22 18:53 ?7次下載
    解決<b class='flag-5'>esp8266</b> Mircopython <b class='flag-5'>OTA</b> 遠程升級方案

    ESP8266 WIFIstm32f103的完整工程

    ESP8266WIFIstm32f103 的完整工程資料分享
    發(fā)表于 11-17 15:23 ?27次下載

    基于ESP8266WiFi

    該項目使用 NodeMcu esp8266 和 Blynk 由您的智能手機控制的最簡單的 wifi 汽車。
    發(fā)表于 12-08 10:15 ?10次下載

    ESP8266芯片WIFI模塊接入云平臺的方法教程

    ESP8266 的模塊芯片是基于無線通信協(xié)議的 UART-WiFi透傳模塊芯片,支持 802.11b/g/n 的無線標準,并帶有三種可選擇的工作模式。
    的頭像 發(fā)表于 03-21 13:32 ?5528次閱讀
    <b class='flag-5'>ESP8266</b><b class='flag-5'>芯片</b><b class='flag-5'>WIFI</b>模塊接入云平臺的方法教程