【STM32】使用 STM32CubeMX 生成项目,LED测试;上位机:STM32F411CEU6

总览

1.前置文章

2.使用 STM32CubeMX 生成项目

一、前置文章,配置环境

1.URL

https://blog.csdn.net/qq_43768851/article/details/161792706?spm=1001.2014.3001.5501

二、使用 STM32CubeMX 生成项目

1.选择 MCU 创建项目

ACCESS TO MCU SELECTOR -> 选择MCU型号 -> Start Project

三、配置 MCU 参数

1.设置主频

设置为最高,100MHZ。

2.调试接口配置

System Core → SYS → Debug → 选择 Serial Wire

3.外部时钟源配置

System Core → RCC → High Speed Clock (HSE) 还有 Low Speed Clock (LSE) → 选择 Crystal/Ceramic Resonator

4.SPI1 通信配置

因为外部 IMU 都采用了 SPI 通信方式(磁力计RM3100 & 加速度陀螺仪ICM45686)

所以,它们的 SPI 共用总线,只需要给它们分配不同的 CS 引脚。

Parameter Settings

DMA Settings

NVIC Settings 中断设置

GPIO Settings

5.TIM2 定时器设置

Parameter Settings

NVIC Settings

6.CS引脚手动配置

另外,为了先验证,我们将 PC13 设置为 LED 小灯,以验证环境和编译没有问题。

查看GPIO配置,核对。

7.项目导出设置

四、vscode 编码

1.vscode自动加载 cmake

加载后,选择左侧 CMake 图标,然后 configure 改成 Debug

2.更改main.c代码

c 复制代码
  /* USER CODE BEGIN WHILE */
  while (1)
  {
    HAL_GPIO_TogglePin(LED_GPIO_Port, LED_Pin); // 根据你的LED引脚修改,如果是PC13则改为 GPIOC, GPIO_PIN_13
    HAL_Delay(50);  
  }
  /* USER CODE END WHILE */

3.配置 Cortex-Debug 文件

左侧选择 bug虫子图标 -> create a launch.json file -> Cortex Debug

文件内容参考:

json 复制代码
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "STM32 F411 Debug", 
            "cwd": "${workspaceRoot}",
            "executable": "${workspaceRoot}/build/Debug/STM32F411CEU6_IMU_TEST.elf", 
            "request": "launch",
            "type": "cortex-debug",
            "runToEntryPoint": "main", 
            "servertype": "openocd",
            "device": "STM32F411CE", 
            "configFiles": [
                "interface/stlink.cfg", 
                "target/stm32f4x.cfg"
            ],
            "svdFile": "" 
        }
    ]
}

4.编译 并 烧录 并 调试

删掉整个 build 目录,然后点击下面的 build(可能会报错如下,但不用管)

build 目录重新生成后,使用 Cortex debug 进行烧录 & 调试

卡在断点上,就点击继续运行就可以了。

然后就能看到我们的代码生效了,LED正在闪烁。

相关推荐
日拱一卒的小田6 小时前
ZYNQ学习笔记3-ZYNQ的IIC控制器1
笔记·单片机·学习
cardinal_5086 小时前
STM32MP157F-DK2开发板构建交叉编译链
stm32·单片机·嵌入式硬件
小羊先生car7 小时前
F429-HAL-RS485(回环/双机实验)(2026/8/16)
c语言·单片机·嵌入式硬件·软件构建
木白CPP7 小时前
Linux 驱动UART子系统源码分析
linux·运维·服务器·驱动开发·嵌入式硬件·开源软件
zlinear数据采集卡8 小时前
数据采集卡从入门到精通(10):采样率与分辨率的核心关系——反比律、架构分布与过采样
arm开发·嵌入式硬件·算法·fpga开发·架构·开源
水果里面有苹果10 小时前
33-TPS62130RGTR-3A降压器
嵌入式硬件
振南的单片机世界11 小时前
推挽vs开漏:一个“强拉硬灌”,一个“只拉不管”
arm开发·stm32·单片机·嵌入式硬件
小心亦新11 小时前
STM32学习23--I2C-1
stm32·嵌入式硬件·学习
小羊先生car12 小时前
F429-HAL-Can总线(回环及双机实验)(2026/8/15)
c语言·单片机·嵌入式硬件·软件构建
嵌入式阿蔡12 小时前
STM32时钟树详解:配错一个全乱套
c语言·stm32·单片机·嵌入式硬件