CubeMX配置如下
初始化代码:用于在主函数中初始化,必须调用
HAL_TIM_Encoder_Start(&htim2,TIM_CHANNEL_ALL);
读取计数值/方向函数:
int16_t ecValue = __HAL_TIM_GET_COUNTER(&htim3) ;//计数值(可得到负数,不再需要额外判断)
uint8_t direction = __HAL_TIM_IS_TIM_COUNTING_DOWN(&htim3);//方向
需注意:定时器用于编码器模式后,通道3、4将不再可用,因为该定时器的时钟来源是外部脉冲。