概述
由于本人之前开发过一段时间Android,一直想使用一款高效率开发工具来开发STM32,是否能像开发Android、Java、前端他们那样,达到敏捷开发效果呢?当然是有的了。该款IDE那就是Visual Studio Code,很好用,说到这,当然网上也有一款Code IDE同样也很受欢迎,它就是Clion IDE,网上也有教大家搭建开发STM32或者其它的ARM系列的开发环境,本篇文章只讲解基于Visual Studio Code搭建STM32开发环境,如果你不喜欢这个IDE,也可以阅读我之前写的一篇基于Clion IDE开发STM32开发环境,文章:链接。好了,废话有点多,进入正题。^_^
一、环境搭建:
1、下载Visual Studio Code : 点击下载
2、GnuWin32:点击下载,最新版本有问题,下面有低版本下载链接
3、下载交叉编译环境gcc-arm-none-eabi。点击下载
下载最新的版本(注:下载时要根据自己PC端,下载对应的gcc即可)
如我的PC环境是win10系统,选择第一个即可。
4、调试工具OpenOCD(用来调试JLINK 或者STLINK 或者其他)点击下载
下载最新版本
5、下载STM32CubeMX驱动代码生成工具。点击下载
下载时,官网会提示你要注册一个账号,才可下载。该工具是基于JAVA语言开发的,所以还要下载
JRE,安装JAVA开发环境。 点击下载,下载较新即可,从目前来看安装java8相对比较稳定,新版本有些问题。
来个全家福,如下所示:
整个软件安装包链接
二、软件安装与环境变量配置
1、解压openocd-20201228.7z
我这是解压放在D盘,如下:
2、安装gcc-arm-none-eabi
3、安装sed-4.2.1-setup.exe
4、安装VSCodeUserSetup-x64-1.53.2.exe
默认即可,傻瓜式安装,下一步下一步。
5、环境变量配置
点击 “确定” 按键完成环境变量配置。
6、检测环境变量配置是否正确
在键盘上,按住 win + R键,如下所示:
分别输入:以下命令,测试
1)openocd -v
证明配置成功
2)make -v
3)arm-none-eabi-gcc -v
4)VSCode 配置
分别安装以下插件
1)C/C++(编码语言)
2)Chinese (Simplified) Language Pack for Visual Studio Code (汉化)
3)Comment Translate(注释翻译)
4)GBKtoUTF8(C/C++文件的编码格式转换)
安装好后,如下所示:
(注:需要重新启动VSCode,以上安装的插件才能生效)
Jlink的驱动以及各种相关软件 下载包
安装以上步骤操作即可。
三、开发步骤
1、STM32CubeMX配置基础工程代码
(注:这里是基于STM32F103C8T6这款芯片生成代码,其它款芯片看官根据自己的需要选型即可。)
2、工程生成后,使用VSCode 打开STM32CubeMx生成的工程
3、新建c_cpp_properties.json的配置文件
1)使用Ctrl+Shift+P打开命令行,输入edit configurations(json)它会在工程文件夹下生成一个.vscode文件夹并在其中创建一个c_cpp_properties.json的配置文件。其中的参数修改可以参考Makefile文件。
{
"configurations": [
{
"name": "Win32",
"includePath": [
"${workspaceFolder}/**",
"D:/Program Files (x86)/GNU Arm Embedded Toolchain/10 2020-q4-major/arm-none-eabi/include",
"D:/Program Files (x86)/GNU Arm Embedded Toolchain/10 2020-q4-major/arm-none-eabi/include/c++/10.2.1",
"D:/Program Files (x86)/GNU Arm Embedded Toolchain/10 2020-q4-major/arm-none-eabi/include/c++/10.2.1/backward",
"D:/Program Files (x86)/GNU Arm Embedded Toolchain/10 2020-q4-major/lib/gcc/arm-none-eabi/10.2.1/include",
"D:/Program Files (x86)/GNU Arm Embedded Toolchain/10 2020-q4-major/lib/gcc/arm-none-eabi/10.2.1/include-fixed",
"Drivers/CMSIS/Include",
"Drivers/CMSIS/Device/ST/STM32F1xx/Include",
"Drivers/STM32F1xx_HAL_Driver/Inc",
"Drivers/STM32F1xx_HAL_Driver/Inc/Legacy",
"Drivers/STM32F1xx_HAL_Driver/Src",
"Core/Inc",
"Core/Src"
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE",
"USE_HAL_DRIVER",
"STM32F1xx"
],
"windowsSdkVersion": "10.0.18362.0",
"compilerPath": "C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/VC/Tools/MSVC/14.27.29110/bin/Hostx64/x64/cl.exe",
"cStandard": "c99",
"cppStandard": "c++17",
"intelliSenseMode": "windows-msvc-x64"
}
],
"version": 4
}
当这一步配置好之后代码中的错误就会消失了。
2)同理,使用Ctrl+Shift+P打开命令行,输入tasks它会在工程文件夹下生成一个.vscode文件夹并在其中创建一个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": "openocd -f interface/stlink-v2.cfg -c 'transport select swd' -f target/stm32f1x.cfg" } ]}
接下使用VScode的终端,输入《make》,编译工程文件
(注,如果此时,编译不了,重启VScode软件试试)
以上,表示编译完成。
接下来要将VScode的终端换成GitBash,打开VScode设置搜索shell,找个下面这一项,点击在settings.json中编辑。
{ "terminal.integrated.automationShell.windows": "C:\Program Files\Git\bin\bash.exe", /* 放大缩小配置 */ "files.associations":{ "main.h":"c", "usart.h":"c" }}
键盘按F5,创建 lauch.json文件
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) 启动",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/build/${workspaceRootFolderName}.elf",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "arm-none-eabi-gdb.exe",
"setupCommands": [
{
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
},
{"text": "cd ${workspaceFolder}/build"},
{"text": "file ${workspaceRootFolderName}.elf"},
{"text": "target remote localhose:3333"},
{"text": "monitor reset"},
{"text": "monitor halt"},
{"text": "load"}
]
}
]
}
参考文章:https://www.cnblogs.com/silencehuan/p/11815263.html
总结:IDE/编码工具与其它IDE 大同小异。
概述
由于本人之前开发过一段时间Android,一直想使用一款高效率开发工具来开发STM32,是否能像开发Android、Java、前端他们那样,达到敏捷开发效果呢?当然是有的了。该款IDE那就是Visual Studio Code,很好用,说到这,当然网上也有一款Code IDE同样也很受欢迎,它就是Clion IDE,网上也有教大家搭建开发STM32或者其它的ARM系列的开发环境,本篇文章只讲解基于Visual Studio Code搭建STM32开发环境,如果你不喜欢这个IDE,也可以阅读我之前写的一篇基于Clion IDE开发STM32开发环境,文章:链接。好了,废话有点多,进入正题。^_^
一、环境搭建:
1、下载Visual Studio Code : 点击下载
2、GnuWin32:点击下载,最新版本有问题,下面有低版本下载链接
3、下载交叉编译环境gcc-arm-none-eabi。点击下载
下载最新的版本(注:下载时要根据自己PC端,下载对应的gcc即可)
如我的PC环境是win10系统,选择第一个即可。
4、调试工具OpenOCD(用来调试JLINK 或者STLINK 或者其他)点击下载
下载最新版本
5、下载STM32CubeMX驱动代码生成工具。点击下载
下载时,官网会提示你要注册一个账号,才可下载。该工具是基于JAVA语言开发的,所以还要下载
JRE,安装JAVA开发环境。 点击下载,下载较新即可,从目前来看安装java8相对比较稳定,新版本有些问题。
来个全家福,如下所示:
整个软件安装包链接
二、软件安装与环境变量配置
1、解压openocd-20201228.7z
我这是解压放在D盘,如下:
2、安装gcc-arm-none-eabi
3、安装sed-4.2.1-setup.exe
4、安装VSCodeUserSetup-x64-1.53.2.exe
默认即可,傻瓜式安装,下一步下一步。
5、环境变量配置
点击 “确定” 按键完成环境变量配置。
6、检测环境变量配置是否正确
在键盘上,按住 win + R键,如下所示:
分别输入:以下命令,测试
1)openocd -v
证明配置成功
2)make -v
3)arm-none-eabi-gcc -v
4)VSCode 配置
分别安装以下插件
1)C/C++(编码语言)
2)Chinese (Simplified) Language Pack for Visual Studio Code (汉化)
3)Comment Translate(注释翻译)
4)GBKtoUTF8(C/C++文件的编码格式转换)
安装好后,如下所示:
(注:需要重新启动VSCode,以上安装的插件才能生效)
Jlink的驱动以及各种相关软件 下载包
安装以上步骤操作即可。
三、开发步骤
1、STM32CubeMX配置基础工程代码
(注:这里是基于STM32F103C8T6这款芯片生成代码,其它款芯片看官根据自己的需要选型即可。)
2、工程生成后,使用VSCode 打开STM32CubeMx生成的工程
3、新建c_cpp_properties.json的配置文件
1)使用Ctrl+Shift+P打开命令行,输入edit configurations(json)它会在工程文件夹下生成一个.vscode文件夹并在其中创建一个c_cpp_properties.json的配置文件。其中的参数修改可以参考Makefile文件。
{
"configurations": [
{
"name": "Win32",
"includePath": [
"${workspaceFolder}/**",
"D:/Program Files (x86)/GNU Arm Embedded Toolchain/10 2020-q4-major/arm-none-eabi/include",
"D:/Program Files (x86)/GNU Arm Embedded Toolchain/10 2020-q4-major/arm-none-eabi/include/c++/10.2.1",
"D:/Program Files (x86)/GNU Arm Embedded Toolchain/10 2020-q4-major/arm-none-eabi/include/c++/10.2.1/backward",
"D:/Program Files (x86)/GNU Arm Embedded Toolchain/10 2020-q4-major/lib/gcc/arm-none-eabi/10.2.1/include",
"D:/Program Files (x86)/GNU Arm Embedded Toolchain/10 2020-q4-major/lib/gcc/arm-none-eabi/10.2.1/include-fixed",
"Drivers/CMSIS/Include",
"Drivers/CMSIS/Device/ST/STM32F1xx/Include",
"Drivers/STM32F1xx_HAL_Driver/Inc",
"Drivers/STM32F1xx_HAL_Driver/Inc/Legacy",
"Drivers/STM32F1xx_HAL_Driver/Src",
"Core/Inc",
"Core/Src"
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE",
"USE_HAL_DRIVER",
"STM32F1xx"
],
"windowsSdkVersion": "10.0.18362.0",
"compilerPath": "C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/VC/Tools/MSVC/14.27.29110/bin/Hostx64/x64/cl.exe",
"cStandard": "c99",
"cppStandard": "c++17",
"intelliSenseMode": "windows-msvc-x64"
}
],
"version": 4
}
当这一步配置好之后代码中的错误就会消失了。
2)同理,使用Ctrl+Shift+P打开命令行,输入tasks它会在工程文件夹下生成一个.vscode文件夹并在其中创建一个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": "openocd -f interface/stlink-v2.cfg -c 'transport select swd' -f target/stm32f1x.cfg" } ]}
接下使用VScode的终端,输入《make》,编译工程文件
(注,如果此时,编译不了,重启VScode软件试试)
以上,表示编译完成。
接下来要将VScode的终端换成GitBash,打开VScode设置搜索shell,找个下面这一项,点击在settings.json中编辑。
{ "terminal.integrated.automationShell.windows": "C:\Program Files\Git\bin\bash.exe", /* 放大缩小配置 */ "files.associations":{ "main.h":"c", "usart.h":"c" }}
键盘按F5,创建 lauch.json文件
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) 启动",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/build/${workspaceRootFolderName}.elf",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "arm-none-eabi-gdb.exe",
"setupCommands": [
{
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
},
{"text": "cd ${workspaceFolder}/build"},
{"text": "file ${workspaceRootFolderName}.elf"},
{"text": "target remote localhose:3333"},
{"text": "monitor reset"},
{"text": "monitor halt"},
{"text": "load"}
]
}
]
}
参考文章:https://www.cnblogs.com/silencehuan/p/11815263.html
总结:IDE/编码工具与其它IDE 大同小异。
举报