windows10 vscode+stm32cubemx完成对使stm32的开发和配置
windows10 vscode+stm32cubemx完成对使stm32的开发和配置
学习stm32的时候发现keil的颜值太低,而且代码提示很差劲,因此想到使用自己喜欢的vscode来进行开发。经过在网上的一番折腾终于找到了可靠的教程。
用VS Code开发STM32(一)——软件安装 - 知乎 (zhihu.com)
用VS Code开发STM32(二)——编译 - 知乎 (zhihu.com)
用VS Code开发STM32(三)——调试 - 知乎 (zhihu.com)
用VS Code开发STM32(四)——增加SEGGER RTT日志输出支持 - 知乎 (zhihu.com)
将环境配置好的话,每次创建项目只需要完成以下工作:
创建.vscode文件夹以及相关配置文件
c_cpp_properties.json
{
"configurations": [
{
"name": "Win32",
"includePath": [
"D:/Software/GNU/10 2021.07/lib/gcc/arm-none-eabi/10.3.1/include",
"${workspaceFolder}/Inc",
"${workspaceFolder}/Drivers/STM32F4xx_HAL_Driver/Inc",
"${workspaceFolder}/Drivers/STM32F4xx_HAL_Driver/Inc/Legacy",
"${workspaceFolder}/Drivers/CMSIS/Device/ST/STM32F4xx/Include",
"${workspaceFolder}/Drivers/CMSIS/Include"
],
"defines": [
"USE_HAL_DRIVER",
"STM32F407xx"
],
"compilerPath": "D:/Software/GNU/10 2021.07/bin/arm-none-eabi-gcc.exe",
"intelliSenseMode": "gcc-x64",
"browse": {
"limitSymbolsToIncludedHeaders": true,
"databaseFilename": "",
"path": [
"${workspaceFolder}"
]
}
}
],
"version": 4
}
launch.json
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Cortex Debug",
"cwd": "${workspaceRoot}",
"executable": "${workspaceRoot}/build/${workspaceFolderBasename}.elf",
"request": "launch",
"type": "cortex-debug",
"device":"STM32F407VE", //使用J-link GDB Server时必须;其他GBD Server时可选(有可能帮助自动选择SVD文件)。支持的设备见 https://www.segger.com/downloads/supported-devices.php
"svdFile": "./STM32F407.svd", //svd文件,有这个文件才能查看寄存器的值,每个单片机都不同。可以在以下地址找到 https://github.com/posborne/cmsis-svd
"servertype": "openocd", //使用的GDB Server
"configFiles": [
"${workspaceRoot}/openocd.cfg"
],
"preLaunchTask": "build",
"armToolchainPath": "D:/Software/GNU/10 2021.07/bin"
}
]
}
settings.json
{
"terminal.integrated.shell.windows": "D:/Software/Git/bin/bash.exe",
"files.associations": {
"stm32f4xx_hal.h": "c"
}
}
tasks.json
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "build",
"type": "shell",
"command": "make",
"args": [
"-j4"
]
},
{
"label": "clean",
"type": "shell",
"command": "make",
"args": [
"clean"
]
}
]
}
配置的具体含义大家看上面博主的教程就可以了。虽然有点麻烦,但是配置好之后就简单了。
最后就是我在运行gdb server的时候发现运行报错了。我的分析是没有插入jlink并安装相关驱动造成的,并不是配置出错。
在项目根目录下配置openocd.cfg文件
# 选择调试器为jlink
source [find interface/jlink.cfg]
#source [find interface/cmsis-dap.cfg]
# 选择接口为SWD
transport select swd
# 选择目标芯片
source [find target/stm32f4x.cfg]
复制对应的svd文件到根目录
svd文件上面那个博主里的教程也给出了链接,按照上面一步一步来就可以了。
配置完成之后的项目目录的样子为:
配置自己的项目大家只需要修改我上面给出的配置路径就可以,其他的不需要动。
分类:
stm32学习
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了