PWM出力

LEDの明るさを変更したり、モーターの回転速度を変更したりする

[プロジェクト名].ioc-Pinout & Configuration-Timers-TIM3-Mode-Channel3PWM Generation CH3Configuration-Parameter Settings-Counter Settings-Prescaler834Counter Period999255PWM Generation Channel3-Output compare preloadDisableに設定。今回はTIM3を使用した。
保存しコードを作成。main.cに処理を追記。

/* USER CODE BEGIN WHILE */
while (1)
{
    HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_3);
/* USER CODE END WHILE */

/* USER CODE BEGIN 3 */
    __HAL_TIM_SET_COMPARE(&htim3,TIM_CHANNEL_3,100);
}
/* USER CODE END 3 */

100がパルス幅にあたる部分であり、範囲は0~255にする。
範囲やPWM周期などはPrescalerCounter Periodなどから求められる。式については'ここ'に記載している。Counter Period範囲の個数-1であるということだけは覚えていて欲しい。

参考