快速入门
前言
本教程帮助您了解stm32环境配置,程序的编译和部署。
软件准备
安装以下软件,本教程需要使用这些软件。
STM32CubeMX
ST提供的代码生成器,为STM32项目生成初始工程和相关配置。
STM32CubeCLT
STM32CubeCLT 提供了 STM32 项目开发所需的工具,也可以自行单独安装以下工具。
Visual Studio Code
程序员必备编辑器,特别适合用来写代码。
硬件准备
STM32开发板
随便一块带有STM32芯片的开发板都可以,这次使用的是便宜的 STM32F103C8T6
核心板。
stlink 下载器
本教程使用stlink进行程序下载,不讨论其它下载方式。
新建工程
启动 STM32CubeMX
选择芯片
配置 SWD
配置工程
生成代码
VSCode 打开工程
新建 .vscode/settings.json 文件
请根据您的实际情况修改路径。
.vscode/settings.json
{
"cmake.cmakePath": "D:/ST/STM32CubeCLT_1.18.0/CMake/bin/cmake.exe",
"cmake.generator": "Ninja",
"cmake.configureOnOpen": true,
"cmake.buildDirectory": "${workspaceFolder}/build",
"cmake.environment": {
"PATH": "${env:PATH};D:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin;D:/ST/STM32CubeCLT_1.18.0/Ninja/bin;"
}
}
新建 .vscode/c_cpp_properties.json 文件
请根据您的实际情况修改路径。
.vscode/c_cpp_properties.json
{
"configurations": [
{
"name": "STM32F103C8T6",
"includePath": [
"${workspaceFolder}/**",
"${workspaceFolder}/Core/Inc",
"${workspaceFolder}/Drivers/STM32F1xx_HAL_Driver/Inc",
"${workspaceFolder}/Drivers/CMSIS/Device/ST/STM32F1xx/Include",
"${workspaceFolder}/Drivers/CMSIS/Include"
],
"defines": [
"STM32F103xB",
"USE_HAL_DRIVER"
],
"compilerPath": "D:/ST/STM32CubeCLT_1.18.0/GNU-tools-for-STM32/bin/arm-none-eabi-gcc.exe",
"cStandard": "c11",
"cppStandard": "c++17",
"intelliSenseMode": "gcc-arm"
}
],
"version": 4
}
编辑 CMakeLists.txt 文件
在文件末尾加上以下内容:
CMakeLists.txt
# Execute post-build to print size, generate hex and bin
add_custom_command(TARGET ${CMAKE_PROJECT_NAME} POST_BUILD
COMMAND ${CMAKE_SIZE} $<TARGET_FILE:${CMAKE_PROJECT_NAME}>
COMMAND ${CMAKE_OBJCOPY} -O ihex $<TARGET_FILE:${CMAKE_PROJECT_NAME}> ${CMAKE_PROJECT_NAME}.hex
COMMAND ${CMAKE_OBJCOPY} -O binary $<TARGET_FILE:${CMAKE_PROJECT_NAME}> ${CMAKE_PROJECT_NAME}.bin
)
编译工程
新建 flash.bat 文件
请根据您的实际情况修改路径。
flash.bat
@echo off
"D:\ST\STM32CubeCLT_1.18.0\STM32CubeProgrammer\bin\STM32_Programmer_CLI" -c port=SWD -w "build\release\gsk.hex" -rst
@REM pause
stlink 连接开发板
- CLK -> CLK
- DIO -> DIO
- GND -> GND
- 3V3 -> 3V3