本文基于版本:

STM32CubeIDE

Version: 1.18.1
Build: 24813_20250409_2138 (UTC)

(C) 2025 STMicroelectronics ALL RIGHTS RESERVED

下载与安装 STM32CubeIDE

STM32CubeIDE - STM32 的集成开发环境 - 意法半导体 STMicroelectronics

需要注册登录后,填写一些信息才可以下载。

安装过程一路选“是”即可。

配置 STM32CubeIDE

双击桌面图标运行,提示选择工作空间,选择为一个不含中文的路径即可。

安装语言包

C,点击 Add,在 Name 栏填入 languageLocation 栏填入下面的链接,然后点击添加,在弹出来的界面选择简体中文语言包,安装后按提示重启软件即可。

https://mirrors.ustc.edu.cn/eclipse/technology/babel/update-site/latest/

安装固件包

在 STM32CubeIDE 菜单栏选择 Help - Configuration Tool - Manage Embedded Software Packages,安装所需平台的 MCU 包即可。此处安装 STM32F1 系列最新固件包。

image.png

等待下载完成后,关闭界面。

配置项目

选择 文件 - 新建 - STM32 Project,进入芯片选择界面,输入芯片型号后选择。

image.png

点击下一步,在 Project Name 中填写项目的名称。

image.png

点击完成,进入工程设置页面。

配置芯片

SYS

image.png

RCC

image.png

时钟,此处需要参考数据手册,若与本文同型号可照抄。

image.png

若需要使用 FreeRTOS,可在此处添加。

image.png

配置代码生成器

image.png

配置 LED 指示灯,根据原理图,将 LED 连接的 GPIO 设置为 GPIO_Output,并且给引脚取名为 LED。

image.png

image.png

最后点击菜单栏中的保存图标,开始生成代码。

若使用 RTOS 会有一个时钟警告,点击 Yes 确认即可。

image.png

编写第一份代码

裸机版

/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 配置中,添加一个任务

image.png

/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,无需特别配置即可使用。

image.png

若使用其他调试器,如 DAP-LINK 则需要进行手动配置,此处以 PWLink2 Lite 为例。

先按下图进行配置,点击应用后,会在项目路径下生成一个 项目名称 Debug.cfg 文件。

image.png

点击该 项目名称 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]

修改完毕后,回到运行配置,修改该选项,保存即可。

image.png

编译并下载

菜单栏中点击🔨锤子图标(构建)进行编译,然后点击绿色播放(运行)将代码写入开发板。部分开发板需要在写入完成后,手动按下重置按钮才会运行新程序。

参考文献