c - StmCubeIDE 调试 STM32F411CEU6 的问题
问题描述
我已经订购了黑色药丸(STM32F411CEU6,真实的)来替换我的蓝色药丸开发套件,这些套件没有足够的 RAM,而且除了运行问题外什么都没有。我已经使用 STM32CubeIDE 生成了项目。
我将 A11、12、13 用于 GPIO 输出,将 PB9、8 用于 I2C 通信,将 A10、11 用于我的 USART 设备。
我可以让 st link 程序员和软件检测我的黑药丸并在短时间内调试,直到我进入MX_GPIO_Init()
在此之后,程序员失去了与设备的通信,并阻止我进行任何真正的编程。我看过的一些地方说尝试将 Sys -> Debug 设置设置为“Serial Wire”,但默认情况下这对我来说是禁用的,我无法切换它。
在调试的上下文中,当我在实时模式下进行调试时,我可以看到启用了调试
Starting server with the following options:
Persistent Mode : Disabled
Logging Level : 1
Listen Port Number : 61234
Status Refresh Delay : 15s
Verbose Mode : Disabled
SWD Debug : Enabled
InitWhile : Enabled
所以调试看起来设置正确但我只是不明白为什么它不能通过查看调试控制台来调用 GPIO 的 init 我得到了这个
handle_vCont_c, Failed continue thread
进入这个函数后抛出的
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
这对我来说没有多大意义,因为我以前没有见过这个,有人可以帮我正确设置这个项目吗?谢谢。
解决方案
串行线调试接口是为 PA13 和 PA14 定义的。在 CubeMx IDE 中,首先设置 SYS->Debug->Serial Wire。为 GPIO 选择另一个引脚而不是 PA13。
推荐阅读
- javascript - 使用下一个承诺中的返回值使用承诺编写一个while循环
- visual-studio - VS 2019 安装“Microsoft Visual Studio 安装程序项目”失败
- javascript - 在输入区域文本中动态添加输入
- vim - 将当前颜色保存为 vim 中的可加载颜色方案
- java - 如何暂停和重新启动自动 ejb
- python - 将二进制数据添加到 django rest 框架 API
- vue.js - 如何修改自动完成以便我只能搜索 1 个单词?
- c# - 检查块时间存在
- amazon-web-services - 无法将 S3 添加为 lambda 中的目的地
- firebase - Firestore 的 `get()` 是否算作 1 个文档读取?