• 用VSCode做STM32项目遇到的问题


    需要安装的插件

    在这里插入图片描述

    我自己用的就这几个,杂七杂八的不要安装到电脑上,每次打开加载都需要时间

    插件的解释

    c/c++
    c/c++ extension pack
    c/c++ themes
    简体中文

    这4个必备,就不说了
    better c++ syntax,作用是c/c++语法高亮,可有可无
    code runner,如果在PC上测试一些小程序,就需要这个,右键直接运行,这个需要先安装mingw编译器,或者其它的PC端编译器
    keil assistant,这个对于keil工程也是必备的插件,如果没有它,那么你的头文件、C文件在目录里面看起来就是乱糟糟的
    one dark pro,个人习惯用这个主题,可有可无
    arm assembly,arm汇编插件,有这个,汇编代码会语法高亮,嵌入式开发必备

    环境配置

    keil assistant插件如何使用不赘述,说一下配置环境遇到的问题和解决办法
    最重大的问题,就是代码无法跳转到函数定义
    在keil那边编译、调试、跳转,都没有问题,为什么vscode会无法跳转
    最后发现所有无法跳转的C文件,它的大纲都是空空如也
    在这里插入图片描述
    这里能正常跳转的,大纲都非常完整

    最终找到原因是,文件的命名,和include的时候写的名字,对不上号。
    比如文件叫Key.h,注意只有首字母大写,inlcude"key.h",在头文件包含的时候又变成了小写,此时vscode估计都蒙圈了,无法正常显示大纲。
    我把所有文件全部改小写,然后include也全部包含小写的头文件,后面跳转就正常了
    这里说明vscode对大小写是敏感的

    第二个问题。
    大纲会显示很多杂七杂八的信息,比如我工程里面如果有很多宏定义,typedef之类的,这些没啥用,我只希望看到函数,这里可以去修改settings.json
    打开命令面板,查看->命令面板,输入settings,选这个带UI的在这里插入图片描述
    搜索outline,我这里除了函数functions+Icons图标,其它的全部取消掉了,注意,只取消outline开头的设置,其它的不要动
    在这里插入图片描述
    效果如图,左边显示KEIL工程目录 + 当前文件的函数列表
    在这里插入图片描述

    还有个问题,就是头文件报错,因为它真的找不到,还有宏定义报错,这俩问题可以放在一起解决

    在用keil插件导入工程后,会在你keil工程文件的目录下,生成一个.vscode目录,这个是用来配置的
    在这里插入图片描述
    在这里插入图片描述

    这里第一个要注意,是你的一些宏定义,在keil软件魔术棒选项里面的c/c++那一栏的里面,如果想要实现等效与#define A 500的效果,写 A=500这种类似的,不要写成 A = 500,也就是中间不要有空格,否则会被插件自动识别成两个宏,A和=500
    也不要尝试去修改插件自动生成的这个json配置文件,因为每次打开工程,都会重新生成
    在这里插入图片描述

    在这里插入图片描述

    第二个是头文件路径包含的问题,这里可以看到配置文件里面大段的包含,都是KEIL工程里面已经定义好的,也就是这里的配置会被翻译过去

    在这里插入图片描述

    但是如果你用了这些功能,它会提示找不到头文件,因为它的头文件来自于KEIL软件的安装目录里面,而不是你的工程里面,你看报错的时候,缺那个头文件,就去KEIL找它编译时的路径
    在这里插入图片描述
    就比如这个文件,如果你没有添加到自己的工程,而是用的keil软件自有的,那么把路径加进去即可
    在这里插入图片描述

  • 相关阅读:
    js中数组去重
    关于前后端分离的Cookie的事项
    无线耳机什么质量好?音质较高的无线蓝牙耳机盘点
    罗丹明聚乙二醇磷脂,Rhodamine-PEG-DSPE,DSPE-PEG-Rhodamine,罗丹明PEG磷脂,磷脂PEG罗丹明,磷脂聚乙二醇罗丹明
    package.json与package-lock.json
    开展高质量发展统计监测与评价的重要意义是什么
    项目人力资源管理
    npm 常用命令
    C语言C位出道心法(五):内存管理
    C#:实现有向加权图上的Floyd Warshall算法(附完整源码)
  • 原文地址:https://blog.csdn.net/whitefish520/article/details/126322004