选择编码器接口模式的方法是:如果计数器只在TI2的边沿计数,则置TIMx_SMCR寄存器中的SMS=001,如果只在TI1边沿计数,则置SMS=010,如果计数器同时在TI1和TI2边沿计数,则置SMS = 011
明确一点,计数器是时钟驱动的,相当于编码器接口模式,将时钟置换为了外部输入信号,控制方法就是更改SMCR从模式控制寄存器的SMS位
选择了外部信号,触发信号(TRGI)的有效边沿与选中的外部输入极性相关(见输入控制寄存器和控制寄存器的说明)
编码器模式的时钟驱动信号为TI1FP1或者TI2FP2,依赖从模式的选择。
所以这就是定时器内部从模式控制器存在的必要性,可以理解位定时器整体模块作为了从设备,被外部的信号驱动,来完成新的计数功能。
所以编码器接口模式可以被简单的认为是一个带有方向选择的的外部时钟,计数器在0到ARR或者ARR到0计数,其它捕获,比较,预分频和触发输出特性正常工作。
编码器灵活的根据相对信号的电平,将在TI1的有效边沿设置为正逻辑,即TI2低时,TI1上升沿 向上计数,下降沿 向向下计数;TI2高时,TI1上升沿向下计数,上升沿向下计数。
对应的TI2有效边沿设置为负逻辑,即TI1低时,TI2上升沿向下计数,下降沿向上计数;
一般增量编码器的两个输出相位相差90度,如此设计,才会使,计数器一直朝一个方向加或者减,直到之前的相位发生变换,后面的相位领先,开始做减或者加法,(STM32内部是一般会选择TI1领先TI2时,为向上计数器,反之则向下计数器)
此为双信号双边沿采样,TI1领先TI2为向上计数