STM32
直播中

贾伟刚

8年用户 1673经验值
私信 关注
[问答]

配置HRTIM的Fault功能,中断句柄一直无法进入是哪里出了问题?

  你好,我在配置HRtiM的Fault功能,首先配置fault enable:

然后External Event:


接下来配置Fault line:

然后配置Interrupt Configuration:

启动HRTIM Fault global Interrupt:

设置好后,在COMP1的输入正弦信号,复制3.3V,DAC输出配置位2048,预计正弦信号超过1.65V就会触发Fault Event.示波器波形看一看到PWM被封住:

但是中断句柄一直无法进入,
void HRTIM1_FLT_IRQHandler(void){/ USER CODE BEGIN HRTIM1_FLT_IRQn 0 /
/ USER CODE END HRTIM1_FLT_IRQn 0 /HAL_HRTIM_IRQHandler( hhrtim1,HRTIM_TIMERINDEX_COMMON);/ USER CODE BEGIN HRTIM1_FLT_IRQn 1 /
/ USER CODE END HRTIM1_FLT_IRQn 1 /}
请教哪里设置错误了。



回帖(1)

远风

2024-7-24 14:11:45
根据您的描述,您已经完成了HRTIM的Fault功能配置,但中断句柄无法进入。以下是一些建议和可能的原因,供您参考:

1. 确保中断使能:请检查是否已经使能了HRTIM的Fault中断。在配置中断配置时,确保已经调用了`__HAL_HRTIM_FAULT_ENABLE_IT(&hhrtim1, HRTIM_FAULT_1)`。

2. 检查NVIC配置:确保HRTIM的Fault中断通道已经在NVIC中使能。例如,如果使用的是STM32系列,您需要调用`HAL_NVIC_EnableIRQ(HRTIM1_FLT_IRQn)`。

3. 检查中断优先级:请检查HRTIM Fault中断的优先级是否正确设置。如果优先级设置不正确,可能导致中断无法被触发。您可以使用`HAL_NVIC_SetPriority(HRTIM1_FLT_IRQn, 0, 0)`来设置优先级。

4. 检查中断句柄:确保中断句柄函数`void HRTIM1_FLT_IRQHandler(void)`已经被正确地链接到中断向量表中。在您的代码中,您需要确保`USER CODE BEGIN HRTIM1_FLT_IRQn 0`和`USER CODE END HRTIM1_FLT_IRQn 0`之间的代码是正确的。

5. 检查HRTIM配置:请再次检查HRTIM的配置,确保Fault功能已经正确配置。这包括Fault输入、Fault事件、Fault中断等。

6. 检查外部信号:确保外部信号(正弦信号)的幅度和频率符合预期,以便触发Fault事件。

7. 使用调试工具:如果可能的话,使用调试工具(如Keil、IAR或STM32CubeIDE)来检查中断句柄是否被调用。您可以在中断句柄函数中设置断点,然后观察程序是否在该位置暂停。

8. 检查硬件连接:确保HRTIM的Fault输入引脚与外部信号源正确连接,且没有硬件故障。

如果以上建议都无法解决问题,您可能需要进一步检查您的代码和硬件设计,以找到导致中断句柄无法进入的原因。
举报

更多回帖

×
20
完善资料,
赚取积分