首先簡單講一下什麼是定時器的編碼器模式:
STM32微控制器的通用定時器有如下的基本功能:
這裡我們主要就是講一下其中的一個功能:定時器支援針對定位的增量(正交)編碼器和霍爾感測器電路。
選擇編碼器介面模式的方法是:如果計數器只在TI2的邊沿計數,則置TIMx_SMCR暫存器中的SMS=001;如果只在TI1邊沿計數,則置SMS=010;如果計數器同時在TI1和TI2邊沿計數,則置SMS=011。 通過設定TIMx_CCER暫存器中的CC1P和CC2P位,可以選擇TI1和TI2極性;如果需要,還可以對輸入濾波器程式設計。 兩個輸入TI1和TI2被用來作為增量編碼器的介面。參看表77,假定計數器已經啟動(TIMx_CR1暫存器中的CEN=’1’),計數器由每次在TI1FP1或TI2FP2上的有效跳變驅動。TI1FP1和TI2FP2是TI1和TI2在通過輸入濾波器和極性控制後的訊號;如果沒有濾波和變相,則TI1FP1=TI1,TI2FP2=TI2。根據兩個輸入訊號的跳變順序,產生了計數脈衝和方向訊號。依據兩個輸入訊號的跳變順序,計數器向上或向下計數