Cube MXで、PWM出力の設定をするのにちょっと引っかかったのでメモ。
目的とする動作は、1サイクルごとに割込みを発生させて、PWM出力のデューティー比を更新していくというもの。
使用しているのはSTM32F301K6U6。
TIM1の設定で、CH1の設定を「Output Compare」にしていた。するとParameter Settingの方で、出力モードの選択肢にPWMが出てこなかった。
仕方なく他の設定で試してみるが、どうしても連続したPWMの波形が出力されず、HiかLoで止まってしまう。Toggleだと一応連続で出力されるものの、当然目的とするPWMの波形にはならない。
リファレンスマニュアルを見ると、レジスタの設定には確かにPWMという設定がある。どうして出てこないのかがわからなかった。
問題はCH1の設定の方で、「PWM Generation」を選択しなければいけなかった。
これでParameterの方でも、PWMの設定が選べるようになった。連続したPWMの波形が出力された。
他のモード設定の場合は、カウンタのリセットで出力が元に戻らないので、変化したらそのままになっているのだろう。
PWMの設定が別になっているのはわかりやすいと思う。
しかし、OCはOCなので、こちらでPWMの選択ができても別に構わないのではないかとも思う。
割込みの方でも引っかかったところがあるので、それは次回に。
Pingback: STM32 HAL PWM出力の割込みについて | 松原UIデザイン