c - 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
这是一个众所周知的问题吗?有没有其他方法可以尝试?
解决方案
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 输出。
推荐阅读
- windows - 是否可以让 32 位进程和 64 位进程读取和写入同一个 Sqlite 数据库文件?
- c - 从同一页面提取图像的标题
- python - Selenium 和 Python,带有不允许 Enter 的搜索栏
- machine-learning - 为自定义环境创建观察空间时,断言观察不是无 AssertionError
- azure - 在 Azure AD B2C 上设置“实时”用户流
- spring-security - 以编程方式访问spring security OAuth2 5.3时使用OAuth2AuthorizedClientManager设置BearerToken
- php - 没有返回正确的 EntityManager Symfony
- tsql - TSQL 连接 XML 输出
- r - t.test 在 R 中针对特定列值(删除所有不等于某个行值的值)
- python - 如何从python中的文本文件中读取现在未显示的某些行?