タイマーを使うためのCubeMXでの設定です。例えば使用するタイマーはTIM4。Clock SourceをInternal Clockに設定します。 TIM4はAPB2からクロックを供給されます。STM32F4 Discoveryを168MHzで動かした場合、タイマーに供給されるクロックは84MHzです。 クロックのパラメーターは割込みを発生させたいタイミングになるように設定します。例えばPrescalerを9999にCounter Periodを2100にすれば500msごとに割込みが発生します。 タイマーのNVICを有効に設定します。

プログラムでは、クロックやGPIOを初期化が終わったら、HAL_Time_Base_Start_IT()を呼び出してタイマーを起動します。

一定周期で特定の処理を実行したい場合は、HAL_TIM_PeriodElapsedCallback()関数をソースのどこかに追加して、その関数の中に処理を書きます。