- 参考教程
其他参考教程:https://www.jianshu.com/u/b1ffe963c188
https://blog.csdn.net/zhengyangliu123
写的比较好的两位博主。
https://www.brobwind.com/archives/1291(有关gdb和openocd的)
- vscode
添加“右键打开文件和文件夹”选项,安装好后添加一些常用的插件。
Chinese (Simplified) Language Pack for Visual Studio Code 中文界面
c/c++
c/c++ clang command adapter
c/c++ snippets
c++ intellisense
Chinese language… vsc汉化
Cortex-debug (不在本教程范围,后边再研究,也可以用于调试)
Cortex-debug:device support
Gbk2utf8
Visual studio intellicode 语法支持、智能补全、颜色
- clang/LLVM
bin目录添加到环境变量
- git
正常安装 在vsc中使用它的终端
- Openocd
解压后放入自定义目录,然后其bin目录添加到环境变量
- arm-none-eabi-gcc
添加“右键打开文件和文件夹”选项
- cubemx
安装好后,下载相应STM32芯片的pack包
- gun mcu eclipse插件
解压到自定义文件夹,并添加bin目录到系统环境变量
- stm32cubeprogrammer
安装好后,将STM32_Programmer_CLI.exe所在目录添加至系统环境变量。
仅供参考,系统环境变量如下:
Win+R 输入cmd,打开终端窗口,验证make、arm-none-eabi-gcc、openocd功能。正常查出版本号,说明正确安装。随便一个终端工具都可以用。
- 建立工程
建工程的过程就略了,选择生成的工程类型:makefile
完成之后,选择 openfolder
生成的文件夹+文件如下(自动生成了makefile):
然后再该文件夹下,shift+右键,在弹出的菜单中选择git bash 或者 在此处打开powershell窗口,输入 make -j4
见到如上的信息,说明已配置好make环境,并生成了正常的可用的程序。
- 使用vscode打开工程
在工程文件夹空白处右键,选择“open with code”
在下边箭头所指向的窗口选择 terminal,然后输入make,正常的话,回正确输出编译过程和最后输出elf文件、hex文件、bin文件。
那么使用vscode开发stm32已经迈出了成功的第一步,剩下还有99步。
Vscode配置json文件实现编译、下载、硬件复位、调试等功能
- 添加配置文件
默认情况下,工程下是不含.vscode的文件夹的,需要在vscode下生成这样的文件或者直接从别处拷贝一份过来。
步骤:ctrl+shift+p,输入tasks,选择 configure task,然后选择C/C++:clang.exe……,这时候vsc会自动创建文件夹,并生成tasks.json模板文件,后期进行修改即可。
再次使用ctrl+shift+p,输入debug,选择open launch.json,然后选择C++…,结果会生成一个launch.json的文件。
同样的方式输入 c c++,找到图示的选择或者设置都可以,最终生成一个c_cpp_properties.json的文件。
- 在终端使用stm32cubeprogrammer连接stm32
主要是使用它的STM32_Programmer_CLI.exe这个命令行工具。当然,安装jlink、st-link utility等也可以。
下图为st-link utility和STM32cubeProgrammer的CLI工具帮助信息,相对而言,Programme的功能更丰富,所以以这个为例来演示。
- Stlink连接stm32芯片测试:
终端输入命令:STM32_Programmer_CLI -c port=SWD,结果如图所示,可以显示连接到的芯片的信息,说明已正确连接。前提是硬件正常、正确连接、供电正常。
使用终端成功下载程序
使用vsc修改makefile后再终端下载程序
- Makefile修改
Makefile添加代码如下:
update:
@STM32_Programmer_CLI -c port=SWD -d $(BUILD_DIR)/$(TARGET).hex -v -s 0x08000000
添加update段,功能是-c 连接device,port=SWD,使用swd接口,-d下载,后边为下载的文件,-v Verify,-s start,后边是下载首地址。
- c_cpp_properties.json文件
主要有添加include路径,编译器路径,宏定义等
{
"configurations": [
{
"name": "Win32",
"includePath": [
"${workspaceFolder}Drivers/STM32F1xx_HAL_Driver/Inc",
"${workspaceFolder}Drivers/STM32F1xx_HAL_Driver/Inc/Legacy",
"${workspaceFolder}Drivers/CMSIS/Device/ST/STM32F1xx/Include",
"${workspaceFolder}Drivers/CMSIS/Include",
"${workspaceFolder}Drivers/CMSIS/Include",
"C:/Program Files (x86)/GNU Tools ARM Embedded/8 2019-q3-update/arm-none-eabi/include"
],
"defines": [
"USE_HAL_DRIVER ",
"STM32F103xE ",
"USE_HAL_DRIVER ",
"STM32F103xE"
],
"compilerPath": "C:\\Program Files (x86)\\GNU Tools ARM Embedded\\8 2019-q3-update\\bin\\arm-none-eabi-gcc.exe",
"cStandard": "c11",
"cppStandard": "c++17",
"intelliSenseMode": "gcc-x86"
}
],
"version": 4
}
- launch.json
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "stm32 Debug",
"cwd": "${workspaceRoot}",
"executable": "${workspaceFolder}/build/TEST_VSC_BLINK.elf",
"request": "launch",
"type": "cortex-debug",
"servertype": "stutil",
"device": "STM32F103RE",
"preLaunchTask": "生成并下载",
"postDebugTask": "复位设备"
}
]
}
- tasks.json
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "生成",
"type": "shell",
"command": "make -j6",
"problemMatcher": [],
"group": {
"kind": "build",
"isDefault": true
}
},
{
"label": "生成并下载",
"type": "shell",
"command": "make -j6 && make update",
"problemMatcher": []
},
{
"label": "重新生成",
"type": "shell",
"command": "make clean && make -j6",
"problemMatcher": []
},
{
"label": "复位设备",
"type": "shell",
"command": "STM32_Programmer_CLI -c port=SWD -hardRst",
"problemMatcher": []
}
]
}
附件(命令行下载程序代码):
命令行下使用各种软件下载方法
- STM32_Programmer _CLI -c port=SWD -d $(BUILD_DIR)/$(TARGET).hex -v -s 0x08000000
- st-flash write TEST_VSC_BLINK.bin 0x8000000
- ST-LINK_CLI -c SWD -P E:/wo4fisher/Documents/keil_proj__stm32/GCC_VSCODE_TEST/build/GCC_VSCODE_TEST.hex -V "after_programming"
第一种:STM32_Programmer,第二种 git-hub开源软件 st-link(release地址:https://github.com/texane/stlink/releases/tag/1.3.0),第三种:st link utility
Launch原版
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "stm32 Debug",
"cwd": "${workspaceRoot}",
"executable": "${workspaceFolder}/build/TEST_VSC_BLINK.elf",
"request": "launch",
"type": "cortex-debug",
"servertype": "stutil",
"device": "STM32F103RE",
"preLaunchTask": "生成并下载",
"postDebugTask": "复位设备"
}
]
}
VSCODE开发STM32向导.pdf
(6.62 MB, 下载次数: 295)