Encoder Interface 编码器接口
编码器接口可接收增量(正交)编码器的信号,根据编码器旋转产生的正交信号脉冲,自动控制CNT自增或自减,从而指示编码器的位置、旋转方向和旋转速度。
每个高级定时器和通用定时器都拥有1个编码器接口。定时器接了编码器之后,这个定时器就干不了其他的了。
两个输入引脚借用了输入捕获的通道1和通道2。
正交编码器
想比于单独输出正转反转信号,正交编码器精度更高,而且正交信号可以抗噪声。
出现上表,CNT计数自增,出现下表,CNT计数自减。
注意:这里内部时钟和时基单元初始化时设置的计数方向并不会使用
编码器正转时,CNT自增;编码器翻转时,CNT自减;
均不反向:
TI1反向:
在输入捕获的使用中,边沿检测和极性选择是选择上升沿还是下降沿,但是编码器接口要求上升沿和下降沿都需要计次,所以在编码器接口的极性选择中,就不是边沿的极性选择了,而是高低电平的极性选择了,如果选择上升沿的参数,那么信号直通过去,不进行高低电平信号的翻转; 如果选择下降沿的参数,那么信号通过非门过去,进行高低电平信号的翻转;
使用步骤:
1. RCC开启时钟,开启GPIO和定时器时钟。
2. 预分频器一般不分频,自动重装器最大65535.
3. 配置输入捕获电路,只需要配置滤波器和边沿检测和极性选择。
4. 配置编码器接口模式。
void TIM_EncoderInterfaceConfig(TIM_TypeDef* TIMx, uint16_t TIM_EncoderMode , uint16_t TIM_IC1Polarity, uint16_t TIM_IC2Polarity); 定时器编码接口配置