ESP32是乐鑫公司生产的物联网芯片内部集成了WIFI和蓝牙的功能,无论是运行速度还是片上资源,都非常强大。和ESP8266一样,安信可公司对ESP32这个芯片进行了模组封装,以模块的形式和大家见面。
常见的有ESP32S,ESP32-WROOM-32、ESP32-A1S。
它既可以自己做CPU,成为一块板子的核心,也能做为辅助设备,协助单片机或者其它处理器,通过UART串口使用AT指令进行相关操作。AT指令的使用也是非常方便!
这里以ESP32-S为例,给大家说下如何进行AT指令的测试。首先找到该模块的引脚分布图:
如图所示,包括EP管脚在内,它一共有39个管脚,最明显的串口是UART0。此时,如果该模块已经接在底板上,芯片内烧录的是出厂默认的固件,串口接到电脑上,波特率115200,上电后,UART0会打印ESP32上电初始化时的LOG信息,内容如下:
看到这个界面,说明你的ESP32已经启动成功了。如果这个时候你通过UART0测试AT指令,你会发现根本没有反应。
为什么?
因为ESP32-S的出厂默认固件中,UART0只用来打印LOG信息,不接受AT指令。如果要使用AT指令的话,需要使用ESP32的UART1。这组串口在ESP32的管脚描述里并没有明显的体现出来,需要通过查阅资料才能找到。
如图所示,UART1在ESP32的GPIO16和17上。连接串口到电脑上,波特率为115200,上电,会打印信息:ready
纠正:这里纠正一下,上面的GPIO16和17应该是UART2,当时资料整理的比较着急,写错了。
然后电脑端发送测试指令:AT+回车。ESP32回复:OK
如此,说明ESP32的AT指令没有问题,测试成功。
哇,原来是这个原因,我说呢!
资料里说UART0用于烧录和数据打印跟踪,UART1被内部使用,只有UART2可以用。
还是不行,我崩了啊
多崩几次,就习惯了。
使用UART2,在ESP32的TXD2和RXD2上。连接串口到电脑上,波特率为115200,上电,会打印信息:ready
UART1和UART2都可以用,UART0只能下载和打印。
UART1默认映射在了ESP32S的SD2和SD3(序号(非管脚)17、18,),外接flash去了,所以无法直接使用。
感谢感谢,初学俩周没搞明白,原来是这个啊。貌似esp32c3也是一样,uart0和1都发不出去指令
客气了