[STM32F4] 在 F4 和 F1 上printf不起作用

[复制链接]
 楼主| 地瓜patch 发表于 2025-4-6 17:39 | 显示全部楼层 |阅读模式
用 STM32F429 Discovery 板和 CUBE IDE。在调试配置中,启用了 SWV,设置了内核时钟,启用了实时执行。在 main.c 部分代码
int _write(int file, char *ptr, int len)
{
   int i=0;
   for(i=0; i<len; i++)
      ITM_SendChar((*ptr++));
   return len;
}
在无限循环中放置一些 “printf”。在 Serial Wire Viewer 设置,ITM Stimulus Ports I 使能端口 0,并按下 Start Trace 按钮。但是当我启动程序时,SWV ITM 数据控制台中没有任何反应,空白。
在STM32F103C8 同样的操作,也没有效果。然后我用 STM32L476 Nucleo 和 STM32H743 Nucleo 进行了尝试,效果很好。
为什么在 F4 和 F1 上不起作用?

elephant00 发表于 2025-4-7 13:37 | 显示全部楼层
电源问题?电压波动可能导致调试功能异常。
两只袜子 发表于 2025-4-7 13:38 | 显示全部楼层
软件冲突,关闭其他工具,仅使用 STM32CubeIDE 进行调试。
duo点 发表于 2025-4-7 13:40 | 显示全部楼层
时钟配置有误?
jcky001 发表于 2025-4-7 15:00 | 显示全部楼层
检查硬件连接是否正确。
cr315 发表于 2025-4-7 18:00 | 显示全部楼层
更新 ST-Link 调试器的固件和 STM32CubeIDE 到最新版本。
onlycook 发表于 2025-4-7 22:00 | 显示全部楼层
用最简单的代码测试 SWV 功能,例如仅在 main() 中调用 printf(),排除其他代码的干扰。
一秒落纱 发表于 2025-4-8 01:21 | 显示全部楼层
你要看看你的串口配置了没,重定向配置了么

三生万物 发表于 2025-4-8 02:31 | 显示全部楼层
一般来说,应该是未启动microlib库也会这样的

别乱了阵脚 发表于 2025-4-8 03:15 | 显示全部楼层
标准库重定向问题(未实现 _write _putchar

冰春彩落下 发表于 2025-4-8 04:35 | 显示全部楼层
printf 默认依赖底层 _write _putchar 函数将输出发送到终端。如果未重定向这些函数到具体的硬件(如 UART),printf 不会生效

夜阑风雨 发表于 2025-4-8 05:09 | 显示全部楼层
一般需要重定向输出到 UART(或其他外设)。这样才有可能会好使

光辉梦境 发表于 2025-4-8 06:26 | 显示全部楼层
确保已初始化 UART 外设(如 huart1)。如果没有初始化串口也不行啊

8886467f3b2d07ba2e.png
远山寻你 发表于 2025-4-8 07:41 | 显示全部楼层
有可能是你未启用标准库的 USE_FULL_ASSERT MICROLIB 配置

淡漠安然 发表于 2025-4-8 08:22 | 显示全部楼层
3. UART 外设未正确初始化,printf 的输出依赖于 UART,但 UART 未初始化或配置错误(波特率、引脚等)

江河千里 发表于 2025-4-8 09:49 | 显示全部楼层
确认引脚映射正确(如 USART1_TX 对应 PA9 F1,或 PA9/ PB6 F4)。使用逻辑分析仪或示波器检查 UART 引脚是否有信号

暖了夏天蓝了海 发表于 2025-4-8 10:54 | 显示全部楼层
堆栈空间不足,printf 可能使用动态内存或较大的栈空间,若堆栈配置过小会导致崩溃

香水城 发表于 2025-4-9 16:40 | 显示全部楼层
F1  F4肯定可以支持的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:出一块TI-PLABS-AMP-EVM

1806

主题

14843

帖子

29

粉丝
快速回复 在线客服 返回列表 返回顶部
个人签名:出一块TI-PLABS-AMP-EVM

1806

主题

14843

帖子

29

粉丝
快速回复 在线客服 返回列表 返回顶部