選擇編碼器接口模式的方法是:如果計數器只在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為向上計數