使用Clion进行STM32开发

发布时间 2024-01-04 22:09:32作者: jambi

用clion进行stm32开发,可以大大提高开发效率,下面总结一下将clion作为stm32开发IDE的相关的设置。

使用前需要安装相关软件和插件,版本如下:

clion版本:2023.3.1

cubemx版本:6.10

openocd版本:0.12.0

arm-none-eabi-g++: 10.3.1

arm-none-eabi-gcc: 10.3.1

开发板为淘宝10元包邮三无板,核心stm32f103c8t6:

 下载调试器为淘宝10元包邮三无st-link v2:

 

1.新建stm32项目

安装cubemx成功后,打开clion,选择新建项目。

在“New Project”窗口左侧,选择项目类型为“STM32CubeMX”,填写项目保存路径后,选择"Create"完成项目创建。

注意:只有cubemx安装后,clion新建项目类型中才会出现“STM32CubeMX”!

 此时clion开始自动创建项目

 创建项目完成后,弹窗提示选择本项目关联硬件类型,类型为系统预设,三无开发板不在预设值范围内,因此此处选择“skip”跳过。

 2.配置stm32项目

在clion上,通过"file"->"settings",打开"settings"窗口。

 2.1 设置嵌入式开发环境参数

在“settings”操作面板中,选择“Build,Excution,Deployment” -> “Embedded Development”打开嵌入式开发设置面板。

分别设置OpenOCD location和Stm32CubeMX location的路径到对应软件的安装路径:

2.2 设置编译工具链

在“settings”面板中,通过选择“Build,Excution,Deployment” -> “Toolchains”,打开工具链设置面板。

点击面板右侧的“+”号,添加一个新的编译工具链,并设置响应的参数:

Name设置为方便识别的名字,我这里设置为“MinGW(stm32)”;

Toolset、CMake、Build Tool、Debuger保持预设值不变;

C Compiler 设置为之前安装的arm-none-eabi-gcc的路径;

C++ Compiler 设置为之前安装的arm-none-eabi-g++的路径;

选择“OK”,保存并完成设置。

2.3 设置CMake编译环境

在“settings”面板中,通过选择“Build,Excution,Deployment” -> “CMake”,打开cmake设置面板。

点击面板右侧的“+”号,新建一个cmake配置,并设置响应的参数:

 Name设置为方便识别的名字,我这里设置为“Debug(stm32)”;

 Build Type选择"Debug";

Toolchain选择上一步新建的编译链“MinGW(stm32)”;

其余设置不变;

选择“OK”,保存并完成设置。

 3.stm32硬件属性配置

3.1选择stm32芯片类型

双击打开项目中的“test03.ioc”文件,右侧窗口中选择“Open with STM32CubeMX”,关联cubemx打开芯片配置。

在“STM32CubeMx”中,已默认选择了一个芯片,单击该芯片名称,在弹出的窗口中,选择stm32f103c8t6。

注意:弹出窗口前,系统会自动下载芯片配置数据,下载时间受网络环境影响,请耐心等待下载完成。

 在弹出窗口“New Project from a MCU/MPU”的"Commercial Part Number"输入框中,输入“stm32f103c8t6”,窗口右下方会列出匹配到的芯片型号。

选择型号“stm32f103c8t6”,选择“Start Project”,完成芯片类型设置。

 3.2 设置开发板的调试功能

3.2.1 打开系统调试模式

在“Pinout & Configuration”窗口中,在"System Core" -> "SYS"选项中,设置"Debug"为“Serial Wire”,打开调试模式;

3.2.2 开启PA13/PA14 的串口调试功能

在“Pinout & Configuration”窗口中的"Pinout View"面板下,鼠标左键点击PA13端子,选择"SYS_JTMS-SWDIO"功能

 在“Pinout & Configuration”窗口中的"Pinout View"面板下,鼠标左键点击PA14端子,选择"SYS_JTMS-SWCLK"功能:

 3.3 设置开发板的LED

通过查询开发板的原理图得知,开发板预置的LED接在芯片的PC13端子上,为低电平导通。

 在“Pinout & Configuration”窗口中的"Pinout View"面板下,鼠标左键点击PC13端子,选在端子功能为"GPIO_Output"

 鼠标右键点击PC13端子,弹出菜单中选择"Enter User Label"选线,设置端子的label为"LED_PIN"。

       

 

 3.4 设置项目属性

打开"Project Manager"设置面板,在面板左侧,选择设置"Project"相关参数,设置如下:

Project Name:工程名,与clion中创建的工程名保持一致,这里设置为"test03";

Project Location:工程路径,设置成clion工程的保存路径;

Toolchain / IDE:选择"STM32CubeMX";

其余保持不变。

  3.5 生成代码

点击窗口右上角的"GENERATE CODE",自动生成代码。

生成过程中,会提示是否覆盖已有文件,选择"YES"。

 选择"Close"关闭窗口,完成配置

 4 编写测试代码

回到clion窗口,自动弹出“Select Board Config File”窗口,点击skip,跳过设置。

 打开"test03" -> "Core" ->"Src"路径下的"main.c"文件,编辑代码

 在main函数中添加如下代码,实现开发板led闪烁效果

5,程序编译和烧录 

5.1, 编写开发板设置文件

在项目根目录下,新建“board.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/stm32f1x.cfg]
# download speed = 10MHz
adapter speed 10000

5.2 烧录接口配置

在"Edit Configurations"中,添加openocd烧录设置

 在"Run/Debug Configurations"窗口左侧,点击"+"按钮,新建配置。

配置列表中选择"OpenOCD Download & Run"选项。

在"Run/Debug Configurations"窗口右侧,设置相关参数。

Name:设置方便识别的名称,我这里设置与工程生成文件一致为"test03.elf";

Target:选择工程生成文件;

Executable binary:选择工程生成文件;

Board config file:选择前面创建的开发板配置文件"board.cfg"的路径;

其余设置保持不变。

选择"OK"保存配置。

 5.3 编译程序

选择编译环境为"Debug(stm32)"

 选择"Build" -> "Rebuild All in 'Debug(stm32)'"开始编译程序

 如果程序正确的话,clion下方的消息窗口中显示编译完成信息。

 5.4 烧录程序

将st-link 和开发板按要求连接好后,通过clion烧录程序。

选择"Run" -> "Run 'test03.elf'" 或者 点击运行按钮,烧录程序到开发板上并运行。

 6 配置中出现的问题及处理(待完善)

6.1 清除开发板程序

上拉BOOT0和BOOT1电压,下拉RESET管脚电压,完成程序清除