当前位置:   article > 正文

VScode + STM32CubeIDE_vscode stm32 cubeide

vscode stm32 cubeide

STM32CubeIDE + VScode

最近想通过stm32自己写一个RTOS,以加深对于RTOS的理解,为了尽快搭建环境,选择了使用STM32CubeIDE 生成代码,再使用 VScode进行调试,下载,中间遇到一些坑,希望接下来的人能够避免。

首先使用STM32CubeIDE 生成功能,配置相关参数,生成代码,这一步很简单,建议参考KeySking的视频:
1、【STM32入门教程-2023】第1集 安装开发环境 STM32CubeIDE
2、【STM32·番外】使用VS Code开发STM32~
在这里插入图片描述

下面重点讲我在进行vscode配置的时候踩的一些坑

1、VSCODE提示您选择的驱动器或UNC共享不存在或不可访问。

错误提示

这是因为之前编译的时候,E盘出问题了(严重怀疑是我在使用百度网盘下载资料的时候选择了下载完自动关系,导致我电脑硬盘的分区表丢了,后面通过diskgenius软件找回),然后系统将所有的文件默认打开路径换成了D盘。
解决办法见此链接

2、cmake build的过程中提示:

在这里插入图片描述
表示生成路径选错了,在CMakePresets.json中修改
在这里插入图片描述
如果不知道写什么,可以故意写错,然后从下面的选项中选择一个,Ninja或者MinGW Makefile
这里注意: 在使用之前,一定要下载好相关的程序,然后将其路径添加到电脑的环境变量中,要不然则会提示:

CMake Error: CMake was unable to find a build program corresponding to “Ninja”. CMAKE_MAKE_PROGRAM is not set. You probably need to select a different build tool.
  • 1

3、最后在CMake build成功,生成了elf与hex文件,这时候点击debug以及run提示:

在这里插入图片描述

这是因为没有选择好合适的gdb文件,详细参考:
使用VS Code进行STM32单片机开发(创建工程、编译、调试)基于官方插件STM32 for VS Code Extension
修改如下项目:

  "miDebuggerPath": "${command:vscode-embedded.st.gdb}",

  "miDebuggerServerAddress": "localhost:3333",

  "debugServerPath": "${command:vscode-embedded.st.gdbserver}",

  "debugServerArgs": "--stm32cubeprogrammer-path ${command:vscode-embedded.st.cubeprogrammer} --swd --port-number 3333",
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

这些项目中${}全部替换为本机上的软件工具目录,注意替换中的反斜杠’\’要变成正斜杠’/’。

  "miDebuggerPath": "D:/Program/IDE/ST/STM32Cube/STM32CubeIDE_1.12.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003/tools/bin/arm-none-eabi-gdb.exe",

  "miDebuggerServerAddress": "localhost:3333",

  "debugServerPath": "D:/Program/IDE/ST/STM32Cube/STM32CubeIDE_1.12.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.stlink-gdb-server.win32_2.0.500.202301161003/tools/bin/ST-LINK_gdbserver.exe",

  "debugServerArgs": "--stm32cubeprogrammer-path D:/Program/IDE/ST/STM32Cube/STM32CubeIDE_1.12.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.cubeprogrammer.win32_2.0.600.202301161003/tools/bin --swd --port-number 3333",
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

修改后保存。硬件连接ST-link通电后即可进行调试。

点击菜单Run->Start Debugging;或者点击左侧插件栏Run and Debug(Ctrl+Shift+D)上方Launch图标,进入Debugging。左侧窗口中可以查看寄存器、本地变更、调用栈,可在左侧栏WATCH中增加全局变量查看。窗口上方有调试按钮方便调试操作,按钮包含运行、单步、跳入、跳出、复位、停止。也可从菜单Run中点击相应菜单项或者用快捷键F5、F10、F11、shift+F11、ctrl+shift+F5、shift+F5。在源代码窗口左侧行号上点击可直接增加断点,也可在左侧栏BREAKPOINTS栏中修改。

4、点击debug提示

unable to start debugging. no process is associated
  • 1

初步猜测是因为launch.json与tasks.json文件导致的

lauch.json 用于设置调试、运行的参数;
tasks.json 用于设置编译时的参数。
在这里插入图片描述

原因令我非常无语:
debug有个参数是作为string输入的,中间各变量使用空格隔开,而我的文件夹中带有空格,所以识别成了两个参数,最终无法生成

5、DEBUG显示

在这里插入图片描述
终于可以愉快的开发了,一个空格引发的惨案!!!

最后

不知道这是不是BUG,虽然这是ST官方出的插件,但是还是希望能够将字符串输入改成一个字符数组,将各参数分开!!!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/秋刀鱼在做梦/article/detail/984468
推荐阅读
相关标签
  

闽ICP备14008679号