这里记录使用STM32CubeMX与Clion建立STM项目,使用 STM32F103C8T6 开发板 (江协科技同款)
具体教程与配置下载参考知乎上稚晖君的 配置CLion用于STM32开发【优雅の嵌入式开发】
CubeMX或Clion创建项目
使用CLion创建项目
由于本人使用CLion创建项目并不会自动生成.ioc文件,所以不采用(就算创建也要到MX中配置)
使用CubeMX创建项目
选择 File → New Project
弹出硬件选择窗口这里选择 MCU/MPu Selector
在文本框中输入 STM32F103C8T6 右下窗口中会出现两种型号,如果你是江协同款则双击选定第一个
如果是第一次软件会下载对应型号的数据库,等待即可.
设置SYS
选择 System → SYS 在Debug下拉框中选定 Serial Wire,选定后 PA13 PA14 会被配置好
设置RCC
选择RCC 在 High Speed Clock (HSE) 与 Low Speed Clock (LSE) 下拉框都选定 Crystal/Ceramic Resonator ,
PC14 PC15 PD0 PD1 会自动配置
设置GPIO
以 PA0 做为输出引脚点亮LED为例
点击芯片的 PA0 在弹出框中选择 GPIO_Output
在 SYstem Core → GPIO 右边 Configuration中会显示刚才配置的引脚,这里可以设置引脚的输出电平/模式/上拉下拉/最大输出速度/别名
在选中引脚时,右边对应引脚也会 绿黑 闪烁,说明当前选择引脚.并且在引脚上有个黑色图钉,说明是用户自己设置的引脚功能
这里按照默认参数暂不改变
时钟配置
在 HCLK(MHz) 设置为72 点击 OK ,其余会自动设定
项目管理
选择 Project MAnager → Project 设置项目名字,地址等
选择 Code Generator 勾选 Generate peripheral.....
生成项目
在配置完所有选项后点击右上角的 GENERATE CODE 生成项目文件
弹出对话框选择 Close 关闭或 Open Folder 打开文件夹
至此项目创建完毕
用CLion配置并编写代码
打开项目,可能无法识别,需要多次 GENERATE CODE 直到出现 选择面板配置文件
根据使用的烧录硬件 ST-Link / DAP 配置cfg,这里建议把两个配置文件放到内部配置文件夹中,方便下次直接复制到项目中使用
在文件名前面加AA,方便排到前头好找
----------------ST-Link.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
-------------DPA-Link.cfg 这里不要复制-------------
# choose st-link/j-link/dap-link etc.
adapter driver cmsis-dap
transport select swd
# 0x10000 = 64K Flash Size
set FLASH_SIZE 0x20000
source [find target/stm32f1x.cfg]
# download speed = 10MHz
adapter speed 10000
放入文件夹中的效果,存放路径为 盘符 :\安装路径\OpenOCD-20240916-0.12.0\share\openocd\scripts\board
点击 运行调试配置,此时是这样记配置完成
初次编译
点击 小锤子 构建项目,查看编译是否通过
因为版本问题,我这里一般会报错
点击错误跳转,选中 (READONLY) 再 Ctrl + R 全部替换为空格即可.原因是版本过低不识别此关键字
再点构建,此时显示构建完成
就可以写代码拉
编写LED亮灭程序
打开 Core → Src → main.c文件,这里就是程序入口处
在第99行 /* USER CODE BEGIN 3 */后面换行编写代码,为什么要在这里
是因为如果想后面再到CubeMX中添加引脚 GENERATE CODE 后会重写文件内容,只有在指定几个地方编写的代码不会被清除
写入程序
// LED亮
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_0, GPIO_PIN_SET);
//延时
HAL_Delay(500);
// LED灭
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_0, GPIO_PIN_RESET);
HAL_Delay(500);
点击构建,不出意外通过,出了意外请自行摇人
硬件接线
按照之前的配置 , level 设置的是 Low ,所以LED负极接 PA0 ,正极接3.3v
接好后连接电脑,点击小锤子旁边的 运行,LED闪烁,说明程序烧录并运行成功
EDN
2025/4/27
S2-106