完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
概述
由于本人之前开发过一段时间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 大同小异。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1970 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1754 浏览 1 评论
1225 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
810 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1771 浏览 2 评论
2013浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
872浏览 4评论
stm32f4下spi+dma读取数据不对是什么原因导致的?
312浏览 3评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
662浏览 3评论
660浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-2-19 06:43 , Processed in 0.722329 second(s), Total 43, Slave 37 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (威廉希尔官方网站 图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191