一则Keil运行时跳转到HardFault_Handler错误处理中断的问题与解决
这两天在调试Keil时发现前两天跑得好好的代码突然不能运行的。一运行就会跑到HardFault_Handler错误处理中断中去。程序代码比较简单就是向Uart口发送一串数据。按道理来说即使这些数据是乱码也不应该跳转到错误处理呀。在HardFault_Handler中加入断点运行到此打开CallStackLocal监测窗口在HardFault_Handler项上点击右键选择“Show Caller code”。发现在Disassembly界面最终的跳转的不是正常的函数而是“0x3030302C 0000 MOVS r0,r0这段代码。这就有点奇怪了按说正常的函数调用入栈出栈不会出现这种无函数的入口错误的。难道是分配的堆栈长度不够了打开starup_stm32f10x_md.s最上面Stack_Size 值为0x400Heap_Size为0x200调大堆栈长度将Stack_Size 值修改为0x800Heap_Size修改为0x400。再次运行仍然是同样的问题。逐一在主函数中加断点找到运行就会出错的主要函数再在这个函数内部逐行加断点一步步调试寻找子函数最终发现是一个向串口写数据的子函数运行后就会跳转到错误中断处理函数。在此函数中乍一看并未发现错误uint16_t ShowMainPage(){ uint8_t *ToSendBufTmpBuf[0]; uint8_t *OldPtrToSendBuf; uint8_t *LenPtr; char aStr[50]; uint16_t FrameLen; sprintf(aStr,%f,DistFlux); ToSendBufShowLcd_Str(lcdvarFlux ,ToSendBuf,aStr); sprintf(aStr,%d,RunTime) ; ToSendBufShowLcd_Str(lcdvarRunTime ,ToSendBuf,aStr); sprintf(aStr,%d,RevAngle); ToSendBufShowLcd_Str(lcdvarRevAngle,ToSendBuf,aStr); sprintf(aStr,%d,StopTime); ToSendBufShowLcd_Str(lcdvarStopTime,ToSendBuf,aStr); FrameLenToSendBuf-OldPtr; SendOut(TmpBuf[0],FrameLen); return(FrameLen);//返回字节数 }这个函数也可以运行到函数末尾而不是在中间就跳转到错误中断处。仔细检查发现第一个sprintf函数中使用的是”%f格式化字符但实际上DistFlux是个整数将%f改为%d后运行恢复正常。结论sprintf函数不匹配的格式化字符和数据会导致系统堆栈在返回函数时错误。推测与此相关的函数比如printf函数也可能会出现此类问题。

相关新闻

稳定同位素内标 N - 棕榈酰基 - O - 磷酸胆碱丝氨酸 - d9(3119876-29-5)在脂质组学定量分析中的应用研究

稳定同位素内标 N - 棕榈酰基 - O - 磷酸胆碱丝氨酸 - d9(3119876-29-5)在脂质组学定量分析中的应用研究

1 脂质定量检测现存技术痛点磷脂丝氨酸(PPCS)是细胞膜关键功能脂质,参与细胞信号传导、凋亡调控。常规 LC-MS 定量采用外标法时,受样本基质、固相萃取回收率、电喷雾离子化效率干扰,定量 RSD 偏高,难以满足…

2026/7/3 10:25:00阅读更多 →
自动驾驶普及真实进度:高速已落地,城区仍攻坚

自动驾驶普及真实进度:高速已落地,城区仍攻坚

1. 这不是科幻片预告,而是我每天在车厂会议室里听的现实进度“自动驾驶5年内能普及吗?”——这句话我过去三年在客户现场、供应商技术对接会、内部项目复盘会上至少听过278次。不是媒体提问,是车企采购总监盯着我问的;不是投资人寒…

2026/7/3 10:19:59阅读更多 →
炉石传说游戏体验优化解决方案:HsMod插件深度指南

炉石传说游戏体验优化解决方案:HsMod插件深度指南

炉石传说游戏体验优化解决方案:HsMod插件深度指南 【免费下载链接】HsMod Hearthstone Modification Based on BepInEx 项目地址: https://gitcode.com/GitHub_Trending/hs/HsMod HsMod是基于BepInEx框架开发的炉石传说功能增强插件,为玩家提供了…

2026/7/3 10:19:59阅读更多 →
【实战案例数字孪生】山海鲸可视化平台中,如何借助场景昼夜状态切换功能,让路灯模型在日间隐藏、夜间自动展示?~山海鲸可视化

【实战案例数字孪生】山海鲸可视化平台中,如何借助场景昼夜状态切换功能,让路灯模型在日间隐藏、夜间自动展示?~山海鲸可视化

制作城市、园区类数字孪生场景时,昼夜切换不能仅调整天空光影,还需匹配路灯的显示逻辑。本篇实战教程聚焦山海鲸多状态功能,手把手教你绑定昼夜切换交互,让路灯随场景时段自动切换显隐状态,还原真实昼夜视觉细节。 1.添…

2026/7/3 12:15:32阅读更多 →
深入解析SMU Debug Tool:AMD Ryzen处理器的5个高级调试功能实战指南

深入解析SMU Debug Tool:AMD Ryzen处理器的5个高级调试功能实战指南

深入解析SMU Debug Tool:AMD Ryzen处理器的5个高级调试功能实战指南 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址…

2026/7/3 12:15:32阅读更多 →
如何在5分钟内掌握Mermaid Live Editor:面向初学者的终极图表制作指南

如何在5分钟内掌握Mermaid Live Editor:面向初学者的终极图表制作指南

如何在5分钟内掌握Mermaid Live Editor:面向初学者的终极图表制作指南 【免费下载链接】mermaid-live-editor Edit, preview and share mermaid charts/diagrams. New implementation of the live editor. 项目地址: https://gitcode.com/GitHub_Trending/me/merm…

2026/7/3 12:15:32阅读更多 →
MC6470与PIC18F45K42的嵌入式运动感知系统设计

MC6470与PIC18F45K42的嵌入式运动感知系统设计

1. MC6470与PIC18F45K42的硬件协同架构解析MC6470作为一款6自由度惯性测量单元(6DOF IMU),其核心价值在于集成了三轴加速度计和三轴陀螺仪,能够以高达1000Hz的采样率实时捕获物体的三维空间运动状态。这款IMU器件采用I2C/SPI数字接口,工作电压…

2026/7/3 12:15:32阅读更多 →
U位报警功能实测:精准预警,零误报

U位报警功能实测:精准预警,零误报

在IDC机房、企业自建数据中心的运维工作中,机柜U位资产管控是基础设施运维的核心痛点。设备私自挪移、无审批下架、U位随意占用等违规操作,搭配传统人工巡检的滞后性,极易造成资产台账混乱、设备溯源困难等问题。本次我们对一套磁控U位资产条…

2026/7/3 12:15:31阅读更多 →
别再用网页版Gemini:4步切换到真正可用的AI工作流

别再用网页版Gemini:4步切换到真正可用的AI工作流

1. 项目概述:为什么“用错”比“不用”更值得警惕你有没有过这种体验:打开浏览器,输入 gemini.google.com,敲完问题,等几秒,结果出来——看起来挺快,但总感觉哪里不对劲?提问要反复改…

2026/7/3 12:10:30阅读更多 →
AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告

AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告

6个月前的2025年12月,Boris Cherny 公开宣布自己卸载了 IDE。一时间,Vibe Coding 成了全行业最热的话题。6个月后,当我们回过头来拉一份真实账本,发现事情远没有"一句话生成一个App"那么浪漫。本文从产品经理和研发两个…

2026/7/2 12:10:34阅读更多 →
审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?

审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?

引言:审计结束三个月了,审计员的权限还没关某城商行每年按照监管要求开展至少一次数据安全审计。审计期间,内审部门需要抽样检查各类业务数据——交易流水、客户信息、员工操作日志、权限配置记录。这些数据分布在不同系统中,审计…

2026/7/2 12:10:34阅读更多 →
LV3296与PIC18F45K22的UART通信与USB扩展方案

LV3296与PIC18F45K22的UART通信与USB扩展方案

1. LV3296与PIC18F45K22的硬件搭档解析在嵌入式数据采集系统中,LV3296条形码扫描模块与PIC18F45K22微控制器的组合堪称经典搭配。LV3296作为一款工业级条码扫描头,其核心是一颗高性能CMOS图像传感器,配合专用解码芯片,能自动识别包…

2026/7/3 0:03:41阅读更多 →
AI初创生存指南:6个月完成可信度验证闭环

AI初创生存指南:6个月完成可信度验证闭环

1. 这不是“逆袭指南”,而是一份AI初创公司真实生存手记“How To Beat Odds As an AI Startup?”——这个标题乍看像一句热血口号,但在我带过7个从0到1的AI产品团队、亲手踩过融资失败、技术债崩盘、客户POC卡在最后一公里等23类典型坑之后,…

2026/7/3 0:03:41阅读更多 →
多模态+推理链+RAG 2.0+智能体:工业级AI系统落地四支柱

多模态+推理链+RAG 2.0+智能体:工业级AI系统落地四支柱

1. 这不是又一篇“AI趋势速览”,而是一份实操者手记:当多模态、推理链、检索增强与智能体协作真正撞进工程现场“LAI #73”这个编号本身就像一个暗号——它不属于某家大厂的白皮书,也不是学术会议的议程表,而是长期泡在模型训练集…

2026/7/3 0:03:41阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/3 1:12:46阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/3 1:36:36阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/3 2:08:15阅读更多 →