ESP32做无线串口 + keil环境部署
本文介绍使用 ESP32 做无线串口连接 arm keil 部署开发环境
1. 背景
非常荣幸从iceasy商城申请到了灵动微电子公司提供的 MM32L0136C7P
开发板,本文将从零开始搭建 arm keil c 语言开发环境,简单给 MM32L0136C7P
开发板亮个灯
2. ESP32 无线烧录器准备
为什么需要准备 ESP32 无线烧录器?
笔者之前做 ESP32 开发的,当前市面上的 ESP32 大都集成了串口芯片具备烧录功能做到了 USB 一线通,因此手头没有额外的芯片烧录器,而本文提到的 MM32L0136C7P
样片本身并未集成串口烧录功能,正当笔者一筹莫展时在论坛里看到了一篇好文:链接,手头恰好有大量的 ESP32C3 能解燃眉之急
2.1 编译固件
用到 windowsair 大佬开发的神固件: github
笔者选用最简单的构建方式: Build-with-Github-Action
【fork 仓库】-> 【修改 main/wifi_configuration.h 添加自己家里的 wifi 密码信息】-> 【git 提交触发 github action 构建】
一套简单的操作之后便获得了适用于 ESP32C3(笔者手里是 ESP32C3,根据自己 ESP32 类型选择相应的包)做无线串口的神固件:firmware_esp32c3.zip
解压 zip 后里面长这样:
1 | tree firmware_esp32c3.zip/ |
我们需要的是 all in one 的固件:wireless_esp_dap_full.bin
2.2 烧录固件
笔者选用操作简单的 Thonny 做烧录
接着在弹窗里选中准备好的 wireless_esp_dap_full.bin 固件,点击【安装】等待片刻便完成了 ESP32 无线串口烧录器的制作
2.3 ESP32 连接 MM32L0136C7P
开发板 SWD 口
按照这个表格的 IO 口接线
SWD | ESP32 |
---|---|
SWCLK | GPIO6 |
SWDIO | GPIO7 |
TVCC | 3V3 |
GND | GND |
SWD 口引脚图灵动官网有给出 PDF
连完线后长这样
2.4 查看 ESP32 无线烧录器 IP
这里依然用 Thonny 获取烧录器 IP
【运行】->【配置解释器】->【确认】后会看到左下角 shell 并未显示我们想要的 IP 信息
别急,按下 ESP32 板子上的 RST,等待重启后即可看到
2.5 准备无线烧录器客户端 elaphureLink
依然用到 windowsair 大神的工具: elaphureLink
直接下载已经编译好的 binary: releases
注意:在安装完 keil IDE 之后再运行 elaphureLink,否则“安装”按钮会提示路径不对(因为 Keil 安装好后会创建路径)
解压后双击运行:elaphureLink.Wpf.exe
按照截图操作后,一切顺利的话会看到 Thonny 的串口输出里提示 “Socket accepted”,OK 无线烧录器准备完成
3. arm keil 环境搭件
3.1 keil 官网下载最新的安装程序
https://www.keil.com/demo/eval/arm.htm#/DOWNLOAD
之后按照提示装好 keil IDE 即可。要注意的是,首次安装好 keil 运行后会弹窗安装开发板对应的 pack,默认这里是搜不到 MM32L0136C7P
的,这里先关闭 Installer 窗口
3.2 获取支持 keil 开发的 pack
灵动官网: https://www.mindmotion.com.cn/support/software/keil_pack/
下载解压后,找到:MindMotion.MM32L0130_DFP.1.1.2.pack,双击自动安装到 keil
3.3 用 keil 打开示例程序
很贴心,灵动官网已经准备好了丰富的示例程序,在这里:
https://www.mindmotion.com.cn/development_tools/info.aspx?itemid=3535
注意:确保 elaphureLink 已开启并配置完成,再打开 Keil 否则后续加载不到 debugger
3.3.1 选中 SLCD_Basic 示例
在左侧边栏里找到要运行的 “SLCD_Basic”示例,右键选择”Set as Active Project”
3.3.2 配置示例环境
Device 选择 MM32L0136C7P
Target 里需要选下 arm 编译器版本,选 “V6.22”
Debug 配置 elaphureLink
注意:确保 elaphureLink 已开启并配置完成后再打开 Keil 否则这里加载不到 elaphureLink Debugger
下面这里很关键,Max Clock 一定要选小于 10MHz 的,否则识别不到设备;下面 Reset 方式一定要改 SYSRESETREQ ,elaphureLink 不支持默认的 Auto
3.3.3 编译 & 烧录
3.3.4 运行
回到 MM32L0136C7P
开发板上,点击右上角的【nRST】触发运行
上文一切配置正确的话,恭喜你,成功运行了官方示例!
5. 总结
第一次接触到 arm keil 开发环境,由于缺少现成的烧录器,笔者额外完成了 ESP32 无线烧录器的制作。本文总结了笔者在 arm keil 环境搭件过程中遇到的坑,希望能帮助到和笔者一样的初学者