本文由来:找遍全网没有人配置HRTIM中断的例子,非简体中文也没有,本人实现了一天才发现问题所在。
基本问题不再赘述
时钟
晶振选择8M无源陶瓷
Debug选择SW模式
HRTIM使用TimerC 的TC1和TC2的互补模式,并用TimerC产生中断
关于互补PWM请同学们参考这篇文章STM32F334高分辨率定时器HRTIM1输出1对互补PWM波详细解析(使用CubeMx配置)HAL库代码-CSDN博客
下面是中断配置的重要步骤,4个步骤分别对应如下4个图
1.(1)预装载使能;(2)重复计数使能;(3)中断请求源数量1个;(4)重复计数中断源使能
2.NVIC中断向量中使能定时器C全局中断
3.根据你的开发环境生成代码
4.在合适的位置打开中断使能定时器,可以在main的初始化那里,也可以放在hrtim.c 初始化配置最后位置的用户代码块中,其代码为:
__HAL_HRTIM_TIMER_ENABLE_IT(&hhrtim1,HRTIM_TIMERINDEX_TIMER_C,HRTIM_TIM_IT_REP);
PS:如果你不使用这个函数就程序不会进入void HRTIM1_TIMC_IRQHandler(void) 中断服务函数
结尾
__HAL_HRTIM_TIMER_ENABLE_IT(&hhrtim1,HRTIM_TIMERINDEX_TIMER_C,HRTIM_TIM_IT_REP)的函数意义如下。本文对于主定时器以及TimerA~E同样适用