本文基于版本:
STM32CubeIDE
Version: 1.18.1
Build: 24813_20250409_2138 (UTC)
(C) 2025 STMicroelectronics ALL RIGHTS RESERVED
下载与安装 STM32CubeIDE
STM32CubeIDE - STM32 的集成开发环境 - 意法半导体 STMicroelectronics
需要注册登录后,填写一些信息才可以下载。
安装过程一路选“是”即可。
配置 STM32CubeIDE
双击桌面图标运行,提示选择工作空间,选择为一个不含中文的路径即可。
安装语言包
C,点击 Add
,在 Name
栏填入 language
;Location
栏填入下面的链接,然后点击添加,在弹出来的界面选择简体中文语言包,安装后按提示重启软件即可。
https://mirrors.ustc.edu.cn/eclipse/technology/babel/update-site/latest/
安装固件包
在 STM32CubeIDE 菜单栏选择 Help - Configuration Tool - Manage Embedded Software Packages
,安装所需平台的 MCU 包即可。此处安装 STM32F1 系列最新固件包。
等待下载完成后,关闭界面。
配置项目
选择 文件 - 新建 - STM32 Project
,进入芯片选择界面,输入芯片型号后选择。
点击下一步,在 Project Name
中填写项目的名称。
点击完成,进入工程设置页面。
配置芯片
SYS
RCC
时钟,此处需要参考数据手册,若与本文同型号可照抄。
若需要使用 FreeRTOS,可在此处添加。
配置代码生成器
配置 LED 指示灯,根据原理图,将 LED 连接的 GPIO 设置为 GPIO_Output
,并且给引脚取名为 LED。
最后点击菜单栏中的保存图标,开始生成代码。
若使用 RTOS 会有一个时钟警告,点击 Yes 确认即可。
编写第一份代码
裸机版
在 /Core/Src/main.c
中,找到主函数的大循环,添加:
按下 Alt + /
可以进行代码自动补全。
int main(void)
{
while (1)
{
/* USER CODE END WHILE */
HAL_GPIO_TogglePin(LED_GPIO_Port, LED_Pin);
HAL_Delay(1000);
/* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */
}
RTOS 版
在 RTOS 配置中,添加一个任务
在 /Core/Src/freertos.c
中,找到任务函数,添加
/* USER CODE BEGIN Header_myLEDTask_handle */
/**
* @brief Function implementing the myLEDTask thread.
* @param argument: Not used
* @retval None
*/
/* USER CODE END Header_myLEDTask_handle */
void myLEDTask_handle(void *argument)
{
/* USER CODE BEGIN myLEDTask_handle */
/* Infinite loop */
for(;;)
{
HAL_GPIO_TogglePin(LED_GPIO_Port, LED_Pin);
osDelay(1000);
}
/* USER CODE END myLEDTask_handle */
}
烧录程序到开发版
将开发版连接到烧录器上。
烧录器 | STM32 (Blue Pill) |
---|---|
SWDIO | PA13 / DIO |
SWCLK | PA14 / CLK |
GND | GND |
VCC | 3.3V / 有外部电源则不接 |
添加运行配置
菜单选择 运行 - 运行配置
ST-LINK
若使用 ST-LINK,无需特别配置即可使用。
OpenOCD / DAP-LINK
若使用其他调试器,如 DAP-LINK 则需要进行手动配置,此处以 PWLink2 Lite 为例。
先按下图进行配置,点击应用后,会在项目路径下生成一个 项目名称 Debug.cfg
文件。
点击该 项目名称 Debug.cfg
文件,进行修改:
# This is an genericBoard board with a single STM32F103C8Tx chip
#
# Generated by STM32CubeIDE
# Take care that such file, as generated, may be overridden without any early notice. Please have a look to debug launch configuration setup(s)
source [find interface/cmsis-dap.cfg] # 修改为 cmsis-dap.cfg
set WORKAREASIZE 0x5000
transport select swd # 修改为 swd
set CHIPNAME STM32F103C8Tx
set BOARDNAME genericBoard
# Enable debug when in low power modes
set ENABLE_LOW_POWER 1
# Stop Watchdog counters when halt
set STOP_WATCHDOG 1
# STlink Debug clock frequency
set CLOCK_FREQ 8000
# Reset configuration
# use hardware reset, connect under reset
# connect_assert_srst needed if low power mode application running (WFI...)
reset_config srst_only srst_nogate connect_assert_srst
set CONNECT_UNDER_RESET 1
set CORE_RESET 0
# ACCESS PORT NUMBER
set AP_NUM 0
# GDB PORT
set GDB_PORT 3333
# BCTM CPU variables
source [find target/stm32f1x.cfg]
修改完毕后,回到运行配置,修改该选项,保存即可。
编译并下载
菜单栏中点击🔨锤子图标(构建)进行编译,然后点击绿色播放(运行)将代码写入开发板。部分开发板需要在写入完成后,手动按下重置按钮才会运行新程序。
参考文献
- STM32CubeIDE 安装 - 使用
- CubeMX 与 CubeIDE 避坑 - Power’s Wiki
- 3.1.7:调试器使用教程 | PowerWriter 文档中心
- H7-TOOL 的高速 DAPLINK 用于新版 STM32CubeIDE V1.13 及其以上版本的超简单实现方法(2023-08-08) - 硬汉嵌入式 - 博客园
- STM32CubeIDE(CUBE-MX)—-快速移植 FreeRTOS 实战_stm32cubeide freertos-CSDN 博客
- 11. GPIO 输出—使用固件库点亮 LED — [野火]STM32 HAL 库开发实战指南——基于 F103 系列开发板 文档
- 5. 使用 STM32CubeIDE 新建工程 — [野火]STM32MP1-M4 内核 HAL 库开发实战指南——基于 STM32MP157 开发板 文档
- GitHub - openocd-org/openocd: Official OpenOCD Read-Only Mirror (no pull requests)
- 新建 FreeRTOS 移植 - FreeRTOS™