本文基于版本:
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™