STM32CubeMX + Clion 环境配置

部分配置过程参考大佬 稚晖君 的帖子:https://zhuanlan.zhihu.com/p/145801160
基于 scoop 配置环境,包括 stm32cubemx clion gcc-arm-none-eabi openocd 等,也可手动部署,需要配置相关环境变量

0. 环境简介

本文基于 scoop 配置相关运行环境,需要的软件包包括:

  1. stm32cubemx : https://www.st.com/zh/development-tools/stm32cubemx.html
  2. clion : https://www.jetbrains.com/clion/
  3. gcc-arm-none-eabi : https://developer.arm.com/downloads/-/gnu-rm
  4. openocd : https://openocd.org/

手动部署需要下载以上软件包,并配置相关环境变量

1. 配置 scoop

scoop 的官方地址 : https://scoop.sh/
首先打开 powershell ,执行下列语句以允许脚本执行 :Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
在默认位置安装只需要执行 : irm get.scoop.sh | iex
若要在指定 path 安装,则先执行脚本下载 : irm get.scoop.sh -outfile 'install.ps1'
而后运行脚本并通过 -ScoopDir 参数指定安装路径 : .\install.ps1 -ScoopDir 'path_to_your_dir'
scoop 的存储库均使用 git 从 GitHub 拉取,在设置好 scoop 后,请执行以下指令:

# 安装git
scoop install git
# 安装aria2加速下载
scoop install aria2
# 添加extras仓库
scoop buckets add extras  
scoop install clion
scoop install gcc-arm-none-eabi
scoop install openocd

2. 配置 clion

配置 clion 前需要安装 stm32cubemx,安装时路径中请勿含有中文或空格
安装好后打开 clion,在首页-Plugins下可以搜索安装 Chinese Language Pack 实现汉化
选择新建项目,在左侧边栏选择 STM32CubeMX,此时需要在右侧指定项目的位置:

点击修正会跳转到设置页面,使用 scoop 安装的软件路径均为 scoop 安装路径下的apps目录下:

需要注意 openocd 的可执行文件在 bin 目录下
修改完成点击应用,然后在左侧选择工具链,点击加号,按下图设置:

设置完成后点击确定,并选择项目位置,点击创建,会进入项目界面。
Clion会首先运行 STM32CubeMX 生成默认必要文件,若生成时 STM32CubeMX 启动较慢,可能是在下载HAL库文件。推荐先打开 STM32CubeMX 进行库文件的下载

3. 新建项目

选择项目位置创建并打开项目后,会自动运行 STM32CubeMX 生成部分必要文件,默认选择的配置文件为 STM32F0 型号,大部分情况下并不符合配置要求,下面进行修改

  1. 项目生成结束后会要求选择面板配置文件,此时选择跳过即可。
  2. 在左侧导航窗格中找到 项目名.ioc 文件,并选择通过 STM32CubeMX 打开,此时会打开新的 STM32CubeMX 界面,先点击界面上的 STM32F030F4PX,然后选择芯片的正确型号并进行其他配置
  3. 配置结束后在 Project Manager 界面填写 Project Name(和Clion的项目名相同),Toolchain/IDE 部分选择 STM32CubeIDE,设置完成后点击右上角的 GENERATE CODE 生成代码
  4. 若跳出 overwrite 的 warning,选择 Yes 即可

成功生成代码后,Clion 会自动检测并更新芯片型号,此时可以在相应目录下编写代码,并可点击右上角🔨图标来编译目标文件

4. 下载与调试

代码编写完成后,点击右上角的 项目名.elf,选择编辑配置:

在第四步中需要选择 openocd 的配置文件,在合适的目录下新建配置文件,名称任意:name.cfg
以 daplink 和 stm32f411 举例,内容如下:

# choose st-link/j-link/dap-link etc.
adapter driver cmsis-dap 
transport select swd
​
# 0x10000 = 64K Flash Size
set FLASH_SIZE 0x80000
​
source [find target/stm32f4x.cfg]
​
# download speed = 10MHz
adapter speed 10000

source部分表示基于哪个芯片的配置文件,可以从 openocd\current\share\openocd\scripts\target 目录下查看所有的芯片配置文件并修改相应部分
修改完成并保存后即可下载运行或开启调试模式