[其他ST产品] printf 触发硬件错误

[复制链接]
62|37
jonas222 发表于 2026-4-10 13:03 | 显示全部楼层
代码运行到 printf 这一行时,程序直接“跳”到 HardFault_Handler。
cemaj 发表于 2026-4-10 14:25 | 显示全部楼层

使用printf时还有哪些常见风险?
mollylawrence 发表于 2026-4-10 15:22 | 显示全部楼层
STM32 的 printf 需要自己实现fputc串口输出,如果函数写错,执行 printf 直接死机。
bestwell 发表于 2026-4-10 16:34 | 显示全部楼层
堆栈大小不足              
claretttt 发表于 2026-4-10 17:18 | 显示全部楼层
printf的格式字符串与参数类型不匹配
plsbackup 发表于 2026-4-10 20:19 | 显示全部楼层
printf需要临时缓冲区存储输出字符串,若单片机的堆栈空间不足,或printf的实现未优化嵌入式环境,可能导致栈溢出,触发HardFault。
alvpeg 发表于 2026-4-10 22:00 | 显示全部楼层
浮点格式不匹配              
lzbf 发表于 2026-4-11 10:21 | 显示全部楼层
栈溢出              
maudlu 发表于 2026-4-11 11:07 | 显示全部楼层
堆栈溢出 —— 最常见              
robincotton 发表于 2026-4-11 11:50 | 显示全部楼层
增大栈大小、简化printf参数
pl202 发表于 2026-4-11 12:20 | 显示全部楼层
在工程中重定向了printf, 重定向函数正确
mattlincoln 发表于 2026-4-11 13:52 | 显示全部楼层
printf 函数在处理格式化字符串时,内部需要大量的局部变量和缓冲区。这会导致函数调用时占用非常大的堆栈空间。
updownq 发表于 2026-4-11 14:35 | 显示全部楼层
在嵌入式系统中,浮点的printf非常消耗资源
uytyu 发表于 2026-4-11 15:20 | 显示全部楼层
轻量级替代printf的浮点数打印函数实现?
adolphcocker 发表于 2026-4-11 18:12 | 显示全部楼层
printf本身需要较大的栈空间
earlmax 发表于 2026-4-13 08:44 | 显示全部楼层
未初始化的指针或变量              
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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