首页 > 解决方案 > STM32 For Vscode扩展printf到控制台

问题描述

我正在使用 macOS 作为我的开发操作系统。我最近下载了设置编程环境所需的所有工具。我正在尝试对 STM32WB55 核板进行编程。我已经使用 STM32cubeMX 创建了一个默认的 makefile 项目,并且我正在使用 stm32 vscode 扩展来构建/刷新和调试我的设备。

我能够毫无问题地构建项目并将其刷新,但是,我想设置 printf 以打印到 vscode 控制台,但我还没有设法做到这一点。我不喜欢每次我想打印一些东西,我必须打开一个终端程序并连接到端口然后监听它,将它打印到 vscode 控制台会更有意义。

我发现了一些相关的线程,例如: Visual Studio Code 中的 GDB 不显示 printf() 输出到标准输出

但是,这个解决方案似乎对我不起作用。

我的 launch.json :

    "configurations": [
        {
            "showDevDebugOutput": true,
            "cwd": "${workspaceRoot}",
            "executable": "./build/wb55_test.elf",
            "name": "Debug STM32",
            "request": "launch",
            "type": "cortex-debug",
            "servertype": "openocd",
            "preLaunchTask": "Build STM",
            "device": "stlink",
            "configFiles": [
                "openocd.cfg"
            ]
        }
    ]
}

当我尝试添加 "console": "internalConsole", "externalConsole": false,无法识别两个命令时:

Property console is not allowed

或者

Property externalConsole is not allowed

这是一个众所周知的问题吗?有没有其他方法可以尝试?

标签: cmacosvisual-studio-codeprintfstm32

解决方案


Nucleo STM32 端口的输出被发送到 Mac 上的虚拟串行端口。为了查看它,您有几个选项:

  • 使用与 Visual Studio Code 分开的终端程序。我非常喜欢Serial。但你可能不愿意花 40 美元。

  • 在 Visual Studio Code 中打开终端并运行screen命令行终端程序。完整的命令行类似于screen /dev/cu.usbxxxxxx. 要退出它,请键入 CTRL-A 和 CTRL-。

  • 使用 PlatformIO 扩展。PlatformIO 是一个强大的工具,支持包括 STM32 和 STM32 HAL 在内的许多平台。它的核心是一个构建系统。因此它将替换您的 Makefile 设置。但它也有一个带有许多好东西的 Visual Studio Code 扩展。它包括一个串行监视器,可在 Visual Studio Code 中显示 Nucleo 输出。


推荐阅读