用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管脚电压,完成程序清除