配置STM32 TIM编码器模式的核心是:将定时器配置为编码器接口模式(Encoder Mode),并连接外部正交信号到CH1/CH2。以STM32F1为例,步骤:1) 使能TIM和GPIO时钟,配置PA0/PA1(或PB6/PB7等)为复用推挽输入;2) 初始化TIM_TimeBaseStructure,设置Prescaler=0,Period=0xFFFF(16位计数);3) 设置TIM_ICInitStructure,选择CH1/CH2为上升沿+下降沿捕获,映射到TI1FP1/TI2FP2;4) 调用TIM_EncoderInterfaceConfig(TIMx, TIM_EncoderMode_TI1, TIM_ICPolarity_Rising, TIM_ICPolarity_Rising);5) 使能TIM。注意:编码器模式下计数器自动增减,读取TIMx->CNT即可得位置,需处理溢出(用Update中断或32位定时器)。建议使用HAL库的HAL_TIM_Encoder_Start()简化配置,但底层原理相同。
mcuku 阿沐 · 2026-08-19