STM32的TIM1具有编码器模块,怎么利用呢。 思路1: (1)先将TIM1配置成正交编码器模式 (2)利用事件更新中断确保记数值在临界时不溢出。 (3)在定时中断里,计算单位时间内的脉冲变化数。 上述思路是否可行呢? 思路2: 摘录自STM32数据手册 当定时器配置成编码器接口模式时,提供传感器当前位置的信息。使用第二个配置在捕获模式定时器测量两个编码器事件的间隔,可以获得动态的信息(速度,加速度,减速度)。指示机械零点的编码器输出可被用做此目的。根据两个事件间的间隔,可以按照固定的时间读出计数器。如果可能的话,你可以把计数器的值锁存到第三个输入捕获寄存器(捕获信号必须是周期的并且可以由另一个定时器产生)。它也可以通过一个由实时时钟产生的DMA请求来读取它的值。 这个思路如何靠代码实现呢?
|