为了配置计时器读取编码器,需要执行以下步骤: 设置以下寄存器 步骤
- 以编码器模式设置定时器2,有两个输入通道(组合)
- 设置应连接到编码器软件开关按钮的引脚 GPIO 输入引脚
- 将 UART1 模块设置在异步模式下 9600bps 运行
- 读取 timer2 计数器寄存器值,数字和按钮状态通过串行端口打印
首先,我们首先启用对 stm32 的 TIM2 的时钟访问
RCC->APB1ENR|=RCC_APB1ENR_TIM2EN;
然后将计时器的最大值设置为以下计数
TIM2->ARR = max_value;
然后按以下方式设置机器人 CC1S 和 CC2S
TIM2->CCMR1 |= (TIM_CCMR1_CC1S_0 | TIM_CCMR1_CC2S_0 );
将两个通道设置为输入,如下所示
TIM2->CCER &= ~(TIM_CCER_CC1P | TIM_CCER_CC2P);
现在,我们告诉你 TIM 在编码器模式下运行,如下所示
TIM2->SMCR |= TIM_SMCR_SMS_0 | TIM_SMCR_SMS_1;
最后,启用计时器,如下所示
TIM2->CR1 |= TIM_CR1_CEN ;
读取编码器只需读取当前的计时器计数器,如下所示
uint32_t read_encoder(void) { return TIM2->CNT; }
您可以从这里下载整个项目(使用它)UART显示结果)
编码器