STM32CubeMXでタイマーをエンコーダ入力モードに設定する方法がわかりにくかったので書いておきます。
ターゲットCPU stm32F407
stm32Fシリーズはピンに2相エンコーダの信号を接続してアップダウンカウンタとして使う機能があります。
STM32CubeMXを使ってタイマをエンコーダ入力モードに設定しようとしたのですが、どのように設定してもエンコーダ入力にする方法がわからず、結局グーグル先生に聞いてロシア語のサイトでやっと設定方法が見つかりました。
端子をタイマーモードで使うにはまずPinout設定のCPU端子が表示されている画面で端子機能を選択します。
TIM3のCH1とCH2をエンコーダインターフェースにしたいので、端子をクリックしてPA6でTIM3_CH1を選択します。
同様にTIM3_CH2機能がある端子でTIM3_CH2を選択して、次に左の機能がツリー構造で表示されている部分でTIM3の機能を選択します。
普通はSlave Mode, Trigger Source, Clock Sourceと手探りで設定していけばなんとか答えにたどり着けるのですが今回はどうやってもエンコーダモードらしき設定が出てきません。
しばらく試行錯誤した後についにあきらめてグーグル先生に聞いた正解が次の通りでした。
上から全部Disableに設定すると最後にCombined Channelsで Encoder Modeが選べるようになります。
そうしておいてConfigure画面のタイマー設定で入力にどのCHを使うかを設定すればOKということでした。