本文介绍使用 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
2
3
4
5
6
7
8
$tree firmware_esp32c3.zip/
firmware_esp32c3.zip/
├── bootloader
│ └── bootloader.bin
├── partition_table
│ └── partition-table.bin
├── wireless_esp_dap_app.bin
└── wireless_esp_dap_full.bin

我们需要的是 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,等待重启后即可看到

依然用到 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 环境搭件过程中遇到的坑,希望能帮助到和笔者一样的初学者

其他

B 站视频