1.19 Cubemx

it2024-01-10  57

一、寄存器总结:

预分频寄存器16bit(TIMx_PSC) 计数器时钟频率CK_CNT=fck_psc/(PSC[15:0]+1)

自动重装载寄存器(TIMx_ARR) 重复计数器寄存器 (TIMx_RCR) 向上/向下自动装载计数器(TIMx_CNT) 控制寄存器 1(TIMx_CR1) 从模式控制寄存器 (TIMx_SMCR) DMA/中断使能寄存器(TIMx_DIER) 状态寄存器(TIMx_SR) 事件生成寄存器 (TIMx_EGR)

捕获/比较模式寄存器1 (TIMx_CCMR1) 捕获/比较使能寄存器1 (TIMx_CCER1) 捕获/比较寄存器 1 (TIMx_CCR1)

全传输 DMA 地址 (TIMx_DMAR)

二、中断回调函数总结:

1)//在定时器计数值与自动重装载寄存器相等时,就会调用该函数 即: TIMx_CNT = TIMx_ARR void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim);//更新中断

2)//在定时器计数值与捕获比较寄存器值相等时发送中断,就会调用该函数 即:TIMx_CNT = TIMx_CCR1 void HAL_TIM_OC_DelayElapsedCallback(TIM_HandleTypeDef *htim);//输出比较

3)//有输入捕获信号(上升沿/下降沿) void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim);//输入捕获

4)void HAL_TIM_TriggerCallback(TIM_HandleTypeDef *htim);//触发中断

三、输出比较各模式:

1)TIM_OCMODE_TIMING TIM输出比较时间模式 冻结––输出比较寄存器 TIMx_CCR1 与计数器 TIMx_CNT 进行比较不会对输出造成 任何影响。(该模式用于生成时基)

2)TIM_OCMode_Active TIM输出比较主动模式 将通道 1 设置为匹配时输出有效电平。当计数器 TIMx_CNT 与捕获/ 比较寄存器 1 (TIMx_CCR1) 匹配时,OC1REF 信号强制变为高电平

3)TIM_OCMode_Inactive TIM输出比较非主动模式 将通道 1 设置为匹配时输出无效电平。当计数器 TIMx_CNT 与捕获/ 比较寄存器 1 (TIMx_CCR1) 匹配时,OC1REF 信号强制变为低电平。

4)TIM_OCMode_Toggle TIM输出比较触发模式 翻转––TIMx_CNT=TIMx_CCR1 时,OC1REF 发生翻转。

5)TIM_OCMODE_FORCED_ACTIVE :强制变为有效电平––OC1REF 强制变为高电平

6)TIM_OCMODE_FORCED_INACTIVE 强制变为无效电平––OC1REF 强制变为低电平。

7)TIM_OCMode_PWM1 TIM脉冲宽度调制模式1 –在递增计数模式下,只要 TIMx_CNT<TIMx_CCR1,通道 1 便为有 效状态,否则为无效状态。在递减计数模式下,只要 TIMx_CNT>TIMx_CCR1,通道 1 便为 无效状态(OC1REF=“0”),否则为有效状态(OC1REF=“1”)

8)TIM_OCMode_PWM2 TIM脉冲宽度调制模式2 PWM 模式 2––在递增计数模式下,只要 TIMx_CNT<TIMx_CCR1,通道 1 便为无 效状态,否则为有效状态。在递减计数模式下,只要 TIMx_CNT>TIMx_CCR1,通道 1 便为 有效状态,否则为无效状态

四、STM32输出比较模式和PWM模式对比

1).两者关系: 其实完全可以理解为PWM模式为输出比较模式的特殊形式,pwm模式在对应定时器上的四个通道产生的频率是同步的(即相同的),而输出比较模式在四个通道可以产生的频率不同。 2).pwm很多是周期固定改变占空比来应用的,当然也有改变频率的,改变占空比修改的是CCR1寄存器,而改变频率则是arr分频器。 3).STM32含有影子寄存器(即起实际作用的寄存器)有TIMx_ARR自动重装载寄存器和TIMx_CCR捕获比较寄存器。ARR寄存器是用来配置计数器溢出周期(也就是计数器计数最大值,比如定时器使用时周期),也就是定时器定时周期或者作为pwm输出时的周期/频率,而TIMx_CCR捕获比较寄存器则是在作输出时作为计数器响应值,也就是pwm时改变占空比(波形)时使用的。两者应用不同。 实际上我们的配置占空比的计算就是(RCC+1)/(ARR+1) 或者(ARR-RCC)/(ARR+1),如果我们在在固定频率下可以更多的改变占空比,那么就psc分频值小些,arr值大些即可

4).输出比较或者pwm模式下,端口输出OCx和OCxREF关系: 参见手册结构图和TIMx_CCMR1中OCxM位,OCxM位决定OCxREF输出,而OCx输出由OCxREF有效时OCx也输出有效,至于有效电平高低,则由CCxP决定了 以OC1M为例:其定义的是OC1REF的输出,OC1REF有效是定死的为高有效: PWM1模式,假如当前OC1REF对应无效电平(OC1REF==0),那么OC1也为无效电平。 当CC1P为0,即OC1为高有效,低无效,那么此时OC1输出就是无效0低电平 当CC1P为1,即OC1为低有效,高无效,那么此时OC1输出就是无效1高电平 简而言之就是:OC1M指的是OC1REF参考电平值,其无效(0)对应OC1时的无效,其有效(1)对应OC1的有效

最新回复(0)