
本文共 4085 字,大约阅读时间需要 13 分钟。
目录
介绍
espressif 基于 esp-idf,针对 ESP32 芯片,实现了一些常用的 AT 指令集,链接地址为 。该指令集可用于用户/MCU/PC 同 ESP32 进行交互,也适用于快速进行 ESP32 开发。
一:目的
本文基于 ubuntu 环境和 windows 环境,介绍快速的搭建 ESP32 AT 编译环境和烧写运行过程,供读者参考。
二:硬件准备
- linux 环境 或 windows 环境
用来编译&烧写&运行等操作的必须环境。
- ESP32 设备
ESP32 设备包括 ,,,等。
- USB转UART接口模块
USB 转 UART 接口模块一般采用专用的 USB 转 UART 接口芯片,输出为 TTL 电平,可以和 ESP32 内置的串口(UART)直接连接,使 ESP32 通过 USB 口和计算机通讯,方便、快捷。
三:环境搭建
3.1 编译器环境搭建
编译环境用于编译 ESP32 AT 系列程序,环境搭建请参考 目录下的 esp-idf 中的编译环境搭建。
注意:
以下的 esp-idf 需要是 esp32-at 下的 esp-idf,这个 esp-idf 通常是比较稳定的版本,而不是最新的 esp-idf,所以 esp32-at 和 esp-idf 必须匹配。如果 esp32-at 和 esp-idf 不匹配,有可能因为 esp-idf 函数接口或者结构体定义等变动,导致 esp32-at 无法正常工作。
3.1.1 ubuntu系统
参考 esp-idf/docs/get-started/linux-setup.rst 教程。
通过此教程,将完成编译器安装并默认生成~/esp/xtensa-esp32-elf/
目录。 3.1.2 window系统
参考 esp-idf/docs/get-started/windows-setup.rst 教程。
通过此教程,您将完成编译器安装并默认在C盘生成msys32
目录。 以下步骤都将在 C:\msys32\mingw32.exe
shell中进行操作。 3.2 接线
默认 ESP32 与 PC/MCU 接线如下配置:
a). 通过串口线将 ESP32 连接到 PC,默认为 UART0 口,UART0口默认用来显示 ESP32 工作中详细的 log 以及用于烧录代码。这些默认配置可通过 make menuconfig
由用户自己定义。
make menuconfig
–> Component config
–> ESP32-specific
–> UART for console output
来配置 log 输出
b). 通过 USB 转 UART 接口模块将 ESP32 连接到 PC,默认为 UART1 口,UART1 口默认用来发送 AT 指令以及查看命令是否成功执行。
如 ESP-WROOM-32 的默认 GPIO 口如下:[如果要在其他 ESP32 设备上,需要根据官方文档,重新配置引脚]
- GPIO16 - RXD
- GPIO17 - TXD
- GPIO14 - RTS
- GPIO15 - CTS
这些默认配置可通过 make menuconfig
由用户自己定义。
make menuconfig
–>Component config
–>AT
来配置 GPIO 口。
四:SDK 准备
用户可通过如下方式获取整个 SDK。
$ git clone https://github.com/espressif/esp32-at.git$ cd esp32-at$ git submodule update --init --recursive
or
$ git clone --recursive https://github.com/espressif/esp32-at.git
目录结构如下:
├── at_customize.csv // 用户自定义分区表├── build // 存放编译后生成的文件├── components // 核心组件| ├── at // AT 主目录| | ├── component.mk // AT 编译入口| | ├── include // 用户可用的 AT 头文件| | └── lib| | └── libat_core.a // 核心 AT 功能实现| └── customized_partitions // customized_partitions 用于编译 AT 中,可以自定义使用的一些 bin 文件,如:ssl ca、ssl cert、ble server table 等├── docs // 说明文档├── esp-idf // esp32-at 编译依赖 esp-idf├── main // AT 应用程序入口├── Makefile // 总编译入口 makefile├── partitions_at.csv // 系统分区表├── README.md // AT 说明├── sdkconfig // 用户自定义编译配置├── sdkconfig.defaults // 默认编译配置├── sdkconfig.old└── tools // 相关工具集
五:编译&烧写&运行
5.1 python 模块安装
由于编译过程依赖于 python 以及 python 中 yaml,xlrd 模块,在编译前需正确安装好 python,yaml,xlrd。(如已安装,忽略 5.1)
根据自己的环境选择安装步骤a) or b):
a) windows 中安装:
选择安装高版本的 python,如 ,选择完全安装,yaml,xlrd 模块将自动安装在 PC 上。或:
选择安装低版本的 python,如
接着安装下载工具 再安装 yaml,xlrd 模块$ pip install pyyaml xlrd
如果安装失败,请尝试下面方式:
$ easy_install rosinstall$ easy_install python-yaml$ easy_install xlrd
b) ubuntu 中安装:
$ sudo apt-get install python$ sudo apt-get install python-yaml$ sudo apt-get install python-xlrd
5.2 编译&烧写
5.2.1 [可选]编译前配置
配置 ESP32 AT 的编译环境:
$ make menuconfig
如选择串口:
make menuconfig
-> Serial flasher config
-> Default serial port
5.2.2 [可选]编译前配置
擦除 ESP32 的 flash & 删除编译信息 & 删除编译配置:
$ make erase_flash && make clean && rm sdkconfig && make defconfig
5.2.3 编译&烧写
$ make flash
通过 make flash
将编译整个 esp32-at ,同时下载/烧录编译好的程序到 ESP32 上。
5.3 运行
1.打开串口工具,连接,连接配置如下:
- 波特率: 115200
- 数据位: 8
- 停止位: 1
- 奇偶校验: None
- 流控: None
2.将 ESP32 调到运行状态, 通过串口工具查看并发送 AT 指令,如通过 cutecom 可得到:
以上,可查看 AT 信息并完成具体的交互过程。
六:ESP32 AT 指令集
参考官网文档:
该文档描述了 ESP32 AT 指令集功能以及使用方法,并介绍几种常见的 AT 指令使用示例。
常见错误处理
a) 为什么 git clone 速度奇慢无比?
可能由于服务器本身原因,可通过为 git 设置代理来 加速下载。
b) 为什么编译不过?
- 是不是 python/yaml/xlrd 模块没有下载好,参考 5.1 节,参考
- 是不是子模块没有完整 clone 下来,参考第四节
- 出现 pthread 编译错误,是不是编译器和 esp32-at 不匹配? 由于有些用户已经下载过 esp-idf 编译器,以为不用再重新下载编译器,其实不然,用户需下载和 ESP32 AT 对应的编译器,参考 3.1 节,参考
c) 为什么 AT 启动不了,出现 no factory ,can not find boot 等情况?
编译前没有擦除 flash 中以前参数,请使用 5.2.2 节命令擦除
d) 为什么 AT 启动不了,出现 invalid magic number 1 等情况?
有些用户导出了最新的 esp-idf,将会由于 esp32-at 和 esp-idf 不匹配而启动出错,因为在 ESP32 AT 下,用户无需自己导出 esp-idf, ESP32 AT 将导出默认的 esp-at/esp-idf。参考
e) 为什么启动了 AT ,两个串口都能看到 log, 但输入命令,控制台无反应?
按照步骤 3.2 上重新接线, RX 和 TX 一定要正确,可以试试反接有没有效果。
发表评论
最新留言
关于作者
