目录
第七篇博客感言
本科阶段的项目还有很多没有写,但是大多都找不到资料了,有资料的也因为过去太久不愿意再重新捡起,或许之后用到再回头学习顺便写博客吧。现在大四,接下来主要还是写写研究生阶段的内容,RoboMaster应该会成为一个重要的系列,今天就从第一步配环境开始写。
前言
在我自己配环境的时候,参考了很多大佬们写的Clion+STM32CubeMX开发环境配置教程,比如稚晖君的【教程】手把手教你用Clion进行STM32开发【如何优雅の进行嵌入式开发】,帮助很大。
但是因为使用的STM32芯片不同以及时间上的滞后性,所以还是有一些步骤存在差异,曾带给我一些困扰。又因为网上直接针对大疆C型开发板的配置教程偏少,而这又是RMers的必经之路,所以特此写一篇博客记录。
软硬件环境
【Windows11】
【RoboMaster大疆C型开发板-STM32F407IGHx】
【ST-Link下载器】
【STM32CubeMX -v 6.12.1】
【CLion -v 2024.2.2】
【OpenOCD -v 20240916】
【Mingw64 -v 14.2.0】
【arm-none-eabi-gcc -v 13.3.rel1】
【ST-Link驱动程序】
软件安装
注意理清每个软件的安装地址,后续配置路径会用到,且尽量避免使用中文路径否则容易报错,建议全部放在一个文件夹中,例如D:/STM32。
CLion
CLion是JetBrains下的一款开发软件,帮助开发者编写、运行和测试C/C++程序。官网下载链接如下:
Download CLion: A Smart Cross-Platform IDE for C and C++
建议直接下载JetBrains Toolbox APP,这样可以在APP内下载CLion和别的开发软件。
下载安装后提示选择30天免费试用或者登录JetBrains账号获取许可,注意学生可以免费使用,申请地址如下:
JetBrains Products for Learning
STM32CubeMX
STM32CubeMX是ST公司提供的一款图形化工具,主要用于简化STM32微控制器的配置和代码生成过程,非常好用。官网下载地址如下:
https://www.st.com/en/development-tools/stm32cubemx.html#get-software
OpenOCD
OpenOCD(Open On-Chip Debugger)是一款开源工具,主要用于调试嵌入式设备中的微控制器。它支持多种调试和编程接口,特别适用于通过JTAG、SWD等调试协议与ARM Cortex系列微控制器(如STM32等)进行通信。下载链接如下:
注意官网下载的OpenOCD可能会出现CLion无法读取的情况,所以建议在上面这一链接中下载。
下载后解压,可以得到bin、drivers、shares这三个文件,请记住它们的地址,后面会用到。
接下来添加环境变量, 编辑Path,然后新建其bin文件地址,保存:
启动cmd,输入openocd -v,得到如下输出,表示安装成功:
MinGW
MinGW是一种编译工具,提供 GNU 编译器集合(GCC)及相关工具,使你可以在 Windows 系统上编译 C、C++ 等语言的代码。官方下载地址如下:
https://github.com/niXman/mingw-builds-binaries/releases
下载解压后,在环境变量中,编辑Path,然后新建其bin文件地址,请注意连续点击多个确定才能保存:
添加到环境变量后,启动cmd,输入gcc -v,得到如下输出,表示安装完成。
arm-none-eabi-gcc
arm-none-eabi-gcc用于编译运行在 ARM 架构微控制器上的裸机应用程序,官方下载地址如下:
Arm GNU Toolchain Downloads – Arm Developer
同样地,下载解压后,将其bin文件路径添加至Path环境变量中:
然后在cmd中输入arm-none-eabi-gcc -v,得到如下输出,表示安装成功:
ST-Link驱动程序
使用ST-Link下载器才需要安装这一驱动程序,如果使用的是Dap-Link需要安装其他驱动。
电脑USB插上ST-Link后(另一端连接C板SWD接口),在设备管理器中的其他设备中,你会发现一个带有一个黄色的感叹号的ST-Link设备,这表示没有安装相关驱动。点击更新驱动,选中本地OpenOCD的安装地址中的drivers文件夹ST-Link,即可安装驱动程序。若不再出现黄色感叹号,即表示安装成功。
软件配置
启动CLion,打开设置,配置OpenOCD和STM32CubeMX的启动地址:
配置工具链:
确认CMake配置:
创建工程
以上完成了所有环境的搭建,接下来以点亮C型开发板的LED灯为例搭建工程。
按大多数博主的教程,是先在CLion中创建MX工程,但是这样非常不方便,因为如此做就必须保证MX的文件名字和地址必须与CLion中的一致,这样才能更新CLion中的代码,而对于初学者这无疑加大了开发难度。因此我们直接在MX中创建工程,然后用CLion打开工程。
启动STM32CubeMX,等待软件完成相关下载与配置。然后点击File-New Project,等待其完成更新,如果报错无法下载mcudoc可直接忽略。随后将进入板卡选择界面,对于大疆C型开发板,选择STM32F407IGHx,双击。接下来开始依次配置板卡:
首先,配置时钟:在Pinout & Configuration一栏,左侧System Core中选择RCC,将High Speed Clock设置为Crystal/Ceramic Resonator:
然后,配置调试方式 :点击SYS,Debug选择Serial Wire:
其次,配置主频:点击顶部Clock Configuration,完成有关配置如下:
接着,为了点亮LED灯,配置GPIO口输出。
查询原理图可以知道,C板的LED灯引脚为PH10,PH11,PH12,如图所示:
因此在MX中直接点击版上的三个引脚,将其设置为GPIO_Output,然后将电平拉高,如果需要还可配置引脚名称:
最后,进行工程文件名和路径配置:点击顶部Project Manager,设置名字为LED,IDE选择为SW4STM32:
然后点击左侧Code Generator,勾选Generate peripheral initialization as a pair of ‘.c/.h’ files per peripheral:
如此便完成了工程文件的搭建,点击右上角GENERATE CODE,即可得到CLion可以识别的代码。
编译
启动CLion, 点击左上角打开项目,将刚才MX生成的工程目录LED作为项目文件夹:
此时可能会提示选择板卡,但是标准库中没有407IG,所以跳过。
接下来需要完成一项配置文件,在工程目录中新建文件夹config,然后新建文件stlink.cfg,将下面这段代码粘入其中,保存:
# choose st-link/j-link/dap-link etc.
#adapter driver cmsis-dap
#transport select swd
source [find interface/stlink.cfg]
transport select hla_swd
source [find target/stm32f4x.cfg]
# download speed = 10MHz
adapter speed 10000
这段代码主要指定了下载器是stlink(如果你用的是stlink的话),板卡是stm32f4x,有了这个配置文件OpenOCD才能识别板卡,并完成烧录。
随后点击右上角编译,如果没有出现这几个图标,可以重启CLion,出现如下结果表示编译成功:
烧录
接下来进行烧录,点击右上角编辑配置,新建一个OpenOCD下载运行配置,点击确定:
然后选择该运行文件,点击运行:
如果输出上述信息,表示OpenOCD没有识别到板卡,可能是因为ST-Link驱动没有安装成功,或者ST-Link与C板的接口SWD连接不稳,请检查连接。
如果成功烧录,输出仍有红色info,但是无error。并且将看到C板LED灯亮起,亮灯种类与MX中拉高的引脚的电平有关。可以尝试分别亮几个颜色的灯,以确保成功烧录。
至此,全环境配置及烧录完成,从此开启RM生涯!
欢迎交流讨论。