ESP32应用指南

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/k331922164/article/details/100540013

一、简介。

想当年,安信可公司推出一款低成本的WIFI模块(基于乐鑫公司的ESP8266芯片)之后,火了一段时间。这个模块是支持AT指令和SDK两种开发方式。

AT指令很简单,用串口发送几条指令,即可让模块进入串口透传模式,用户基本不用涉及复杂的TCP/IP协议。

SDK开发,相当于固件库开发,官方提供丰富的例子,有带操作系统和不带操作系统等等,代码可读性好,上手难度并不高。

由于ESP8266本身的定位就是低成本的联网方案,所以它的性能不会太高,不适合做太复杂的事情。

后来,安信可又推出了一款WIFI/蓝牙模块ESP32,它可以说是ESP8266的增强版。除了增加了蓝牙4.2之外,还增加了非常丰富的外设,如:ADC、SPI、IIC、IIS、SDIO、UART、PWM、红外控制器、有线以太网MAC、AES、SHA、RSA、随机数产生器、PID控制器、电容触摸传感器、低噪放、温度传感器、DAC等。同时,CPU主频高达240MHz,但是,价格也不高。

STM32也推出了一款类似的芯片,就是STM32WB系列,也就是STM32增加了蓝牙5、OpenThread、ZigBee 3.0。但是在淘宝上购买这个芯片时,卖家说这是出口管制品,需要签订公司合同。

显然,ESP32比STM32WB更有优势。

以下均以Windows环境下开发ESP32S模块为例,介绍开发时的注意事项。不定期更新。

二、硬件设计。

2.1 串口。

ESP8266系列的ESP-01模块默认一个串口输出调试信息以及AT指令的通信。

ESP32系列的ESP32S模块一共有3个串口,其中,使用串口0输出调试信息以及烧录固件,串口2做AT指令的通信

串口0也就是U0RXD、U0TXD引脚,串口2则是U2RXD、U2TXD引脚。

也就是说使用AT指令时,ESP32不再像ESP8266那样,一上电就打印一串调试信息,用户体验有所提高。

2.2 天线。

ESP32模块在PCB上的布局,要求天线超出板边,如下图所示,否则可能会影响无线通信距离。

三、SDK开发环境。

3.1 ESP32-IDF配置。

这里的SDK使用ESP32-IDF,具体的环境配置可以参考官网《示例4:ESP32_IDF 使用》。

需要注意的是,IDF不需要使用git下载,直接在AiThinkerIDE_V0.5的安装目录下就有了,不过是旧的IDF,我这里是C:\AiThinkerIDE_V0.5\cygwin\home\aithinker\project\esp-idf。

而git下载的是新的IDF,在AiThinkerIDE_V0.5下,不能使用新的IDF。(官方的技术支持表示在开发新版本的AiThinkerIDE)

所以这里是把旧的IDF拷贝出来,把example下的helloword拷贝出来,改名为app,其它的按照示例4的去做就可以了。

3.2 使用Eclipse烧录固件。

在Make Menuconfig那一步,进入Serial flasher config。

进入Default serial port。

我的这里的串口号为COM10,对应于cgywin下的串口号为ttyS9。如果是COM1,对应ttyS0,对应的数字减1。

这里配置为/dev/ttyS9。

此外,还要配置波特率为921600。

我这里试了1152000,烧录失败,具体波特率视硬件上串口的信号质量而定,信号质量差,需要降低波特率。

然后退出,保存即可。这样,就能使用shift+F9下的Download,也就是make flash命令。

出现下图所示,即为烧录成功。

这个方法比ESP Flash Download Tool要方便得多。

3.3 其它问题。

出现下图所示问题,可以不管,只要Build成功就说明代码没问题。(可能是IDE的词法分析器没做好,实际是找得到这些变量)

四、参考资料。

ESP32S官方资料

官方源码(包括ESP32和ESP8266等)

ESP32常见问题

ESP32硬件设计指南

ESP32技术参考

ESP32 AT指令集与使用示例

ESP32管脚清单

ESP32S产品规格书

ESP32系列芯片手册

ESP32出厂固件及SDK

猜你喜欢

转载自blog.csdn.net/k331922164/article/details/100540013