VMx

vmx.im
啥都学一点的填坑人
  1. 首页
  2. arduino
  3. 正文

stm32使用vscode环境配置

2021年6月19日 772点热度 0人点赞 0条评论

琢磨几天终于完美运行,但新问题又来了。在使用 FreeRTOS 时 cubemx 相同的配置,生成的代码使用Keil uVision5 运行正常,使用vscode编译正常,但使用却有些问题。

  • include path和browse path问题。
    以为一个 "${workspaceFolder}/**"完美搞定,那只是你以为,而现实却是很残酷,各类找不到。所以你还是得老老实实给补全,附上我的c_cpp_properties :

    {
    "configurations": [
        {
            "name": "STM32",
            "includePath": [
                "${workspaceFolder}/**",
                "${workspaceFolder}/Drivers/STM32F4xx_HAL_Driver/Inc",
                "${workspaceFolder}/Core/Src",
                "${workspaceFolder}/Core/Inc",
                "${workspaceFolder}/Drivers/CMSIS/include",
                "${workspaceFolder}/Drivers/CMSIS/Device/ST/STM32F4xx",
                "${workspaceFolder}/Middlewares/Third_Party/FreeRTOS/Source/include",
                "${workspaceFolder}/Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F",
                "${workspaceFolder}/Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS",
                "${workspaceFolder}/Drivers/CMSIS/Device/ST/STM32F4xx/Include"
            ],
            "defines": [
                "STM32F4",
                "STM32F407xx",
                "STM32F40_41xxx",
                "USE_HAL_DRIVER"
            ],
            "windowsSdkVersion": "10.0.19041.0",
            "compilerPath": "D:/cygwin64/bin/gcc.exe",
            "cStandard": "c99",
            "cppStandard": "c++17",
            "intelliSenseMode": "gcc-arm",
            "compilerArgs": [
                "DUSE_HAL_DRIVER ",
                "DSTM32F407xx"
            ],
            "browse": {
                "limitSymbolsToIncludedHeaders": true,
                "path": [
                    "${workspaceFolder}/**",
                    "${workspaceFolder}/Drivers/STM32F4xx_HAL_Driver/Inc",
                    "${workspaceFolder}/Core/Src",
                    "${workspaceFolder}/Core/Inc",
                    "${workspaceFolder}/Drivers/CMSIS/include",
                    "${workspaceFolder}/Drivers/CMSIS/Device/ST/STM32F4xx",
                    "${workspaceFolder}/Middlewares/Third_Party/FreeRTOS/Source/include",
                    "${workspaceFolder}/Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F",
                    "${workspaceFolder}/Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS",
                    "${workspaceFolder}/Drivers/CMSIS/Device/ST/STM32F4xx/Include",
                    ""
                ]
            }
        }
    ],
    "version": 4
    }
  • 未定义问题。
    代码段是 defines ,差不多全网搜了一遍都出现未定义情况。最后想起我使用另一个ide的时候没有这个问题。使用 PlatformIO时完全正常。上面代码中是 F407 的配置,假如在你上面依然错误,最快的办法就是安装一个PlatformIO,新建一个工程,把里面的defines复制过来就完美了。但PIO 对中间件支持不好,只有放弃(个人技术较烂,抱歉!)。

  • 其实步骤

    • 使用 cubemx 生成驱动文件, project --> Toolchain/IDE --> Makefile --> GENERATE CODE
    • 增加你的程序
    • 在终端中 make (如果没有错误的话,恭喜你)速度和uVision差不多
    • 如果你是 ST-LINK 直接使用 STM32 ST-LINK Utility 工具下载到开发板
      工具栏中的大图标的第六个是 Program verify ,选好你工程目录中的 build 中的 hex 后直接 Start
    • 看到 Verification...OK 恭喜你成功了。
Post Views: 361
标签: stm32 vscode
最后更新:2021年6月19日

huifei

这个人很懒,什么都没留下

点赞
< 上一篇

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

COPYRIGHT © 2021 vmx.im. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang