skyred 发表于 2022-6-29 21:27

STM32F103C8 TIM 配置完中断就 Hard Fault



现在检查配置问题,
其实,想问大家的 是,进入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

这是配置的有问题吧
页: [1] 2
查看完整版本: STM32F103C8 TIM 配置完中断就 Hard Fault