0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

STM32 OTA例程中的WiFi芯片ESP8266

STM32单片机 来源:工程师曾玲 2019-02-02 16:45 次阅读

前言

这一节,我们来聊聊STM32的FOTA例程中用到的WiFi芯片ESP8266。这里涉及到一个基于该芯片的WiFi模块ESP-01。它是安信可公司基于ESP8266 芯片的WiFi模块。在STM32 FOTA Demo工程里,我们用它来实现无线通信。下面先来认识一下该模块,然后在Demo里重点介绍基于ESP8266 芯片相关底层驱动的实现过程。

ESP-01模块

ESP-01模块集成ESP8266EX WiFi芯片,支持802.11b/g/n协议,支持UART/GPIO等接口,内嵌LwIP协议栈,支持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位数据位,无奇偶校验,1位停止位。连接如下:

STM32 OTA例程中的WiFi芯片ESP8266

AT指令格式

ESP-01的AT指令集就是ESP8266的AT指令集。可以细分为四种类型:

STM32 OTA例程中的WiFi芯片ESP8266

要注意的是,不是每条AT指令都具备上面4种类型,具体要去看该条AT指令的说明。

使用双引号表示字符串数据。比如“123”,就是一个字符串,而123就是数字。

开头的AT指令两个字符必须大写,每条命令以回车换行符结尾“\r\n”

ESP8266的AT指令集又分为:基础AT命令(对模块的配置,串口设置等),WiFi功能AT命令(设置WiFi模式,连接AP等),TCP/IP功能AT命令(建立TCP连接,收发数据等)。

作为TCP客户端工作

模块初始化

程序上电运行后,在开始使用WiFi模块前,必须先对其进行初始化。除了GPIO口以及串口的初始化外,还需要对WIFI模块进行配置,使其工作在我们希望的模式下。在STM32 FOTA Demo里ESP8266应该工作在STATION模式和多连接模式下。所以在初始化的时候,需要通过相应的AT指令进行配置。下面是初始化的代码以及AT指令执行的过程。

STM32 OTA例程中的WiFi芯片ESP8266

STM32 OTA例程中的WiFi芯片ESP8266

连接到AP

STM32 OTA例程中的WiFi芯片ESP8266

STM32 OTA例程中的WiFi芯片ESP8266

上图的黄色部分是WiFi模块的返回状态。必须要接收到"OK\r\n",才能去读取IP地址。连接WiFi热点的过程,需要的时长不一定,有时2、3秒,有时6、7秒。所以这里最好把等待的时间 留长一点,否则经常会出现连接WiFi热点失败的情况。

与服务器建立连接

连接到WiFi热点后,就可以开始与服务器建立连接了。ESP8266支持5个并发连接。

一般我们知道的不是目标服务器的IP地址,而是域名。所以在开始创建连接之前需要先通过DNS服务获该取域名对应的IP地址。ESP8266也提供了相应的AT指令。

下面是代码中的一段和建立连接相关的代码:

STM32 OTA例程中的WiFi芯片ESP8266

STM32 OTA例程中的WiFi芯片ESP8266

发送数据

发送数据过程分两步:

1.发送AT+CIPSEND=,命令。说明要往哪个socket通道,发送多少字节的数据。

2.收到WiFi模块返回的"OK\r\n>"后,再发送数据。

下面是例程中,ESP8266发送数据的代码实现。

STM32 OTA例程中的WiFi芯片ESP8266

STM32 OTA例程中的WiFi芯片ESP8266

接收数据的模式

STM32 OTA例程中的WiFi芯片ESP8266

注意:该示例中MQTT和HTTP应用都在一个task里面调用,如果在不同的task实现,接收驱动需要做相应修改。

小结

在例程中,和WiFi模块相关的驱动由三层组成:

在ESP8266_io.c中,是最底层的跟STM32外设打交道的部分。包括初始化引脚,从串口读取和发送数据;

Esp8266.c中是对AT指令的实现。

Wifi.c是WiFi底层驱动和上层的一个接口。我们可以看到它的函数和ESP8266.c中的某些函数名字都很类似。

我们前面讲的内容基本都在这三个文件中,对于如果想更换WIFI模块来讲,它主要涉及到的代码也就是这三部分。

STM32 OTA例程中的WiFi芯片ESP8266

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 接口
    +关注

    关注

    33

    文章

    8580

    浏览量

    151037
  • STM32
    +关注

    关注

    2270

    文章

    10896

    浏览量

    355774
  • WIFI
    +关注

    关注

    81

    文章

    5297

    浏览量

    203600

原文标题:STM32 OTA例程之ESP8266:你会不会正确使用?

文章出处:【微信号:STM32_STM8_MCU,微信公众号:STM32单片机】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    ESP8266AT命令例程

    wifi模块ESP8266 的AT命令例程,很实用的技术文档,可以看看
    发表于 11-02 10:47 221次下载

    低功耗WIFI芯片ESP8266规格书

    低功耗WIFI芯片ESP8266规格书,需要的可以看看 免积分
    发表于 11-02 10:47 246次下载

    ESP8266串口WIFI

    esp8266图文,AT例程!!!!!!!!!!
    发表于 11-10 17:09 0次下载

    ESP8266_wifi模块说明书

    ESP8266_WiFi Specifications _ChineseESP8266 wifi模块说明书,中文版
    发表于 12-29 14:16 195次下载

    使用esp8266实现STM32联网(最简单USART方法)

    上一篇 esp8266怎么配置esp8266和USB转TTL连接esp8266简单介绍esp8266连接路由器esp8266通过路由器连接在
    发表于 11-22 11:51 1.3w次阅读

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

    ESP8266-WIFI-SmartPlug官方例程使用教程
    发表于 01-25 10:19 12次下载

    使用STM32控制ESP8266手机wifi开启窗户的详细资料合集免费下载

    通过STM32F103控制ESP8266wifi模块,进行远程手机控制家内窗户开启关闭,不包含窗户状态返回。STM32控制ESP8266手机wifi
    发表于 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
    的头像 发表于 07-29 11:32 8.7w次阅读
    如何将<b class='flag-5'>ESP8266</b>连接到<b class='flag-5'>WiFi</b>

    ESP8266 WIFI芯片的程序免费下载

    本文档的主要内容详细介绍的是ESP8266 WIFI芯片的程序免费下载。
    发表于 12-03 15:05 94次下载

    WIFI ESP8266模块的详细资料合集免费下载

    本文档的主要内容详细介绍的是普WIFI ESP8266模块的详细资料合集免费下载包括了:ESP8266-WIFI参考资料(AT指令使用示例,ESP
    发表于 03-03 08:00 108次下载
    普<b class='flag-5'>中</b><b class='flag-5'>WIFI</b> <b class='flag-5'>ESP8266</b>模块的详细资料合集免费下载

    ESP8266 wifi模块开发汇总

                                  ESP8266 wifi模块开发汇总 ESP8266 wifi模块开发汇总本文档主要介绍开发者在
    发表于 11-05 19:21 188次下载
    <b class='flag-5'>ESP8266</b> <b class='flag-5'>wifi</b>模块开发汇总

    解决esp8266 Mircopython OTA 远程升级方案

    一下esp8266运行的程序,然后过程查找了许多的资料都没有看到Mircopython平台上如何OTA升级esp8266固件,于是自己胡乱做了一个用起来还不错的替代方案,给爱好者们提
    发表于 12-22 18:53 7次下载
    解决<b class='flag-5'>esp8266</b> Mircopython <b class='flag-5'>OTA</b> 远程升级方案

    ESP8266 WIFIstm32f103的完整工程

    ESP8266WIFIstm32f103 的完整工程资料分享
    发表于 11-17 15:23 29次下载

    基于ESP8266WiFi

    该项目使用 NodeMcu esp8266 和 Blynk 由您的智能手机控制的最简单的 wifi 汽车。
    发表于 12-08 10:15 10次下载

    ESP8266芯片WIFI模块接入云平台的方法教程

    ESP8266 的模块芯片是基于无线通信协议的 UART-WiFi透传模块芯片,支持 802.11b/g/n 的无线标准,并带有三种可选择的工作模式。
    的头像 发表于 03-21 13:32 5826次阅读
    <b class='flag-5'>ESP8266</b><b class='flag-5'>芯片</b><b class='flag-5'>WIFI</b>模块接入云平台的方法教程