你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

求助!!stm32f100+STLINk调试老是出现HardFault

[复制链接]
山月知 提问时间:2016-3-7 17:39 /
求助各位,我刚接触STM32,利用keil+stlink实现led点灯功能,然后总是经常进入HardFault Handler中,
有时候是还在systeminit()时就进入,有时候是进入main函数后,这几天看了些文档以及网上一些相关资料,依旧没有办法解决。。
1.png
2.png
3.png
能不能麻烦各位抽空看看,多谢多谢!
收藏 评论10 发布时间:2016-3-7 17:39

举报

10个回答
仙景 回答时间:2016-3-9 08:43:49
之前我也出现这样的问题,可以先按照前辈们的想法先查找问题。不过我也说说我之前遇到的问题,是由于指针读地址出现跑死的。
山月知 回答时间:2016-3-9 09:37:41
liu553824989 发表于 2016-3-9 08:43
之前我也出现这样的问题,可以先按照前辈们的想法先查找问题。不过我也说说我之前遇到的问题,是由于指针 ...

谢谢~但是我每次遇到的问题都各种不同,给我的感觉就是 硬件方面不稳定之类的,而且基本上调用的都是库函数,实在不明白为什么出现这种情况。
xmshao 回答时间:2016-3-9 11:16:27
用户代码里没什么东西,就是空循环,不像你用户代码问题。

你把硬件线路连接好,应该不会频繁出HARDFAULT.

问题可能跟你的启动代码有关.尽量找个最新的库代码来玩。
richyhuang 回答时间:2016-3-9 11:21:45
用汇编写个简单的试试看行不行.
废鱼 回答时间:2016-3-9 15:23:13
楼主把工程发上来,大家帮你测试一下。
山月知 回答时间:2016-3-9 16:21:39
多谢各位。

stm32f100.rar

下载

4.05 MB, 下载次数: 7, 下载积分: ST金币 -1

山月知 回答时间:2016-3-9 16:23:31
还有有时候在调试过程中会出现下面这种情况,不知道是为什么。
4.png
山月知 回答时间:2016-3-10 15:13:59
我发现启动文件选错了,我用的是STM32F100系列,启动文件选择是的startup_stm32f10x_md.s,应该用startup_stm32f10x_md_vl.s
但是重新选择启动文件了,发现现在完全不能进入main()了,新建工程试过了,还是不行,不知道为什么
山月知 回答时间:2016-3-10 16:53:25
最后仔细看了下启动代码,发现问题是进入SetSysClock()函数中执行完SetSysClockTo24()后不能正常返回_main,所以我直接把SetSysClock()注释掉了,就可以执行到main函数了,并且LED点灯功能也能工作了。
所以有点不太明白SetSysClock()为什么会导致不能返回_main。有朋友知道这个么,能否告知下?
山月知 回答时间:2016-3-10 17:11:49
进一步发现出问题的是从systeminit返回后,执行不了main。如下图:
一旦执行就会进入Hardfault中
7.png

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版