[STM32F4] STM32F103C8 TIM 配置完中断就 Hard Fault

[复制链接]
1471|30
 楼主| skyred 发表于 2022-6-29 21:27 | 显示全部楼层 |阅读模式


现在检查配置问题,
其实,想问大家的 是,进入Hard Fault 的条件是什么?

想从条件返回去排除问题
gaoyang9992006 发表于 2022-6-30 08:52 | 显示全部楼层
通常这是硬件配置错误导致的。
gaoyang9992006 发表于 2022-6-30 08:53 | 显示全部楼层
你是手工代码配置还是用的cubeMX,建议你用cubeMX试试,另外厂家的BSP包有TIM例子,你可以跑一个试试。
 楼主| skyred 发表于 2022-7-3 18:48 | 显示全部楼层
嗯,cube是个好东西
香水城 发表于 2022-7-3 21:10 | 显示全部楼层
一般是程序发生了非法访问导致的。

时钟、电源、中断、越界或非对齐都可能导致类似问题。
sonicll 发表于 2022-7-4 09:50 | 显示全部楼层
大概率是代码访问了不允许访问的总线地址,还有中断向量表如果放在了不能访问的地址,也会进hardfault
 楼主| skyred 发表于 2022-7-10 19:05 | 显示全部楼层
确实改了代码解决了问题,只是糊里糊涂的,没搞清原因
SantaBunny 发表于 2023-3-1 13:01 | 显示全部楼层
看贴出来的代码,main函数中并没有初始化系统时钟,清中断标志位。可再参考官方例程
belindagraham 发表于 2023-6-7 13:06 | 显示全部楼层
可以在HardFalut下断点,停下后看函数调用堆栈,看在产生HardFalut之前都调了什么函数。
adolphcocker 发表于 2023-6-8 13:40 | 显示全部楼层
可以使用调试工具进行诊断。               
pl202 发表于 2023-6-8 14:55 | 显示全部楼层
先看看是不是你任务栈空间设置太小,溢出了?
louliana 发表于 2023-6-8 15:12 | 显示全部楼层
数组越界操作; 内存溢出,访问越界; 堆栈溢出,程序跑飞; 中断处理错误;
rosemoore 发表于 2023-6-8 15:45 | 显示全部楼层
Keil MDK提供了硬件调试器和软件仿真等多种调试方式
robertesth 发表于 2023-6-8 15:56 | 显示全部楼层
通过调整代码、修改配置等方式解决Hard Fault问题。
jkl21 发表于 2023-6-8 23:04 | 显示全部楼层
在使用浮点数等特定数据类型时,必须保证堆栈对齐,否则可能会引发Hard Fault错误。
hudi008 发表于 2023-6-8 23:18 | 显示全部楼层
建议考虑是否出现了硬件错误从而进入了
Mowergy 发表于 2023-6-9 18:03 | 显示全部楼层
用调试工具诊断一下
Undshing 发表于 2023-6-9 22:27 | 显示全部楼层
是不是配置错误啊
robertesth 发表于 2023-6-10 17:46 | 显示全部楼层
在访问数组元素时,如果索引超出数组范围,则会导致Hard Fault错误。
AloneKaven 发表于 2023-6-10 23:03 | 显示全部楼层
这是配置的有问题吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

102

主题

740

帖子

3

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