
使用位置积分器来跟踪编码器的位置;
根据转动轴的方向进行递增/递减计数;
可选择2X 模式或4X 模式;
使用内置定时器来捕获速度;
速度比较功能,当捕获的速度小于比较速度时产生中断;
使用32 位寄存器来保存位置和速度;
3 个位置比较寄存器,可产生中断;
用于分辨率计数的索引计数器;
索引比较寄存器,可产生中断;
可结合索引和位置中断来产生整个位移或局部旋转位移的中断;
带可编程编码器输入信号延迟的数字滤波器;
可接收已解码的输入信号(时钟和方向);
与APB 相连。
下面是调试OK的代码:
void Encoder_Configration(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
TIM_ICInitTypeDef TIM_ICInitStructure;
//PC6 A相 PC7 B相
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOC,&GPIO_InitStructure);
/* Enable the TIM3 Update Interrupt */
/*NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQChannel;