9.3 捕抓/比较功能
STM32F429微控制器的高级定时器和通用定时器中有输入捕抓通道和输出比较通道。
1、输入捕抓通道:
1 ) 、频率测量、PWM信号周期、占空比测量,以及霍尔传感器输出信号测量等。
2 ) 、测量光电正交编码器输出信号,实现电机转速的测量。
2、输出比较通道:
实现PWM信号输出、6步PWM信号生成,用于电机控制。
9.3.1 输入捕抓/比较输出通道
1、输入捕抓通道
2、输出比较通道
9.3.2 输入捕抓模式
在使用输入捕抓通道1,当检测到TI1引脚上输入的信号出现上升沿时,将计数器的值捕抓到TIMx_CCR1中。具体操作步骤如下:
1.选择输入捕抓模式,IC1映射到TI1上
2.设定输入信号边沿检测的滤波功能(防抖动)
3.选择边沿触发方式
4.对输入预分频器进行编程
5.使能输入捕抓功能
6.设置捕抓中断和DMA请求
当连续两次捕抓同一输出信号的连续两个边沿跳变,两次得到的计数寄存器值分别为C1和C2(假设C1和C2计数期间没有溢出事件),那么这一输入信号的周期:
((C2-C1)/CK_CNT)/输入捕抓通道预分频系数。
PWM波的周期测量:
9.3.3 PWM输出模式
比较模式:
9.3.4 编码器接口模式
在编码器模式下,计数器会根据增量编码器的速度和方向自动进行修改,因此计数器内容始终表示编码器的位置。计数方向对应于定时器所连传感器的轴旋转方向。
不同编码器模式下的计数方式如下图:
9.4 定时器典型应用步骤及常用库函数
9.4.1 基本定时功能应用步骤
①使能定时器时钟。
RCC_APB1PeriphClockCmd();
②初始化定时器,配置ARR,PSC。
TIM_TimeBaseInit();
③开启定时器中断,选择中断请求事件并配置NVIC。
void TIM_ITConfig(TIM_TypeDef* TIMx, uint16_t TIM_IT, FunctionalState NewState);
NVIC_Init();
④使能定时器。
TIM_Cmd();
⑤编写中断服务函数。
TIMx_IRQHandler();
9.4.2 输入捕抓模式应用步骤
①使能定时器时钟和GPIO时钟
②初始化定时器输入捕抓通道引脚
③初始化定时器测量时钟
④设置输入捕抓通道
⑤选择定时器复位触发源
⑥开启定时器中断
⑦使能定时器
⑧编写中断服务函数
9.4.3 PWM输出应用步骤
①使能定时器时钟
②初始化定时器比较输出通道引脚
③定义PWM波的周期
④设置比较输出通道
⑤使能定时器
⑥开启定时器中断
9.4.4 编码器接口应用步骤
①使能定时器时钟
②初始化定时器编码器接口输入通道引脚
③定义编码器接口的计数值溢出值
④设置定时器编码器接口模式
⑤开启定时器中断
⑥使能定时器
⑦编写测量速度应用程序
9.4.5 常用库函数