总览
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正在闪烁。
