STM32工程模版建立点亮LED

墨山箐
发布于 2025-04-27 / 35 阅读
2
0

STM32工程模版建立点亮LED

这里记录使用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


评论