前言:
高级定时器具有通用定时器的所有功能,我们在这里面只说它不一样的地方。(通用定时器不具备的功能)
一:高级定时器
1:介绍
2:重复计数器
在我们普通的定时器中当CNT=CCR时直接发生溢出。然而我们的高级定时器多了一个重复计数器。
3:中断源
中断号的选择
在STM32微控制器的中断向量表中,你会看到很多与TIM1(定时器1)相关的中断处理程序(IRQHandler)的条目。这些处理程序对应于TIM1的不同中断源。根据你提供的内容,我们可以逐一解释这些中断并讨论如何选择它们:
- TIM1_BRK_IRQHandler:
- 描述:这个处理程序用于处理TIM1的断点中断。当定时器达到预定义的断点值时,这个中断会被触发。
- 用途:通常用于安全相关的应用,比如当某个条件满足时,需要立即停止定时器或执行某些安全操作。
- TIM1_UP_IRQHandler:
- 描述:这个处理程序用于处理TIM1的更新中断。当定时器计数达到其重载值(即一个周期完成)时,这个中断会被触发。
- 用途:通常用于需要周期性执行的任务,如PWM信号的产生、定时任务等。
- TIM1_TRG_COM_IRQHandler:
- 描述:这个处理程序用于处理TIM1的触发和换向中断。这通常与外部触发事件或电机控制中的换向操作相关。
- 用途:在电机控制或其他需要外部触发或换向的应用中使用。
- TIM1_CC_IRQHandler:
- 描述:这个处理程序用于处理TIM1的捕获比较中断。当定时器的当前计数值与某个比较寄存器匹配时,这个中断会被触发。
- 用途:用于精确的时间测量(输入捕获)或生成复杂的PWM信号(输出比较)。
4:互补死区
不能同时为高电平
5:死区时间计算
6:刹车
二:功能配置
1:输出PWM实验
注意:MOE默认为0。
A:HAL配置
HAL_TIM_GenerateEvent(&g_timx_npwm_chy_handle, TIM_EVENTSOURCE_UPDATE);
通过软件产生事件,我们这里面选跟新事件
调用这个函数的一个常见原因是为了立即触发定时器的更新事件,而不是等待定时器自然溢出。这对于需要立即应用新的PWM参数或更改定时器的状态特别有用。例如,如果你在代码中更改了PWM的占空比或频率,并希望这些更改立即生效,你可以调用这个函数来强制定时器更新其状态。
2:刹车和死区
三:代码
按下为高电平