0626 SW4STM32&CubeMXを用いてNucleoでPWMしてみる

前回と同様にして,CubeMXで,

f:id:RoPot:20170626211034p:plain

PA5をクリックして,TIM2_CH1を選択する.

そして左側のリストのTIM2のChannel1をPWM Generation CH1にする

次にClock  ConfigurationのタブをクリックしHCLKが84Mhzになっていることを確認する.また,Timer Clocksが84Mhzになっていることを確認する.

次にConfigurationのタブに移動し,TIM2をクリックし以下のような設定にする.

f:id:RoPot:20170626211739p:plain

この設定によって,84Mhz/((83+1)*999+1)=1kHz周期のPWMが作れているはず.

CubeMXのギヤみたいなボタンを押してコードを作成する.

main関数の95行目に

if (HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_1) != HAL_OK) { Error_Handler(); }

を入れて,

メインループに

__HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_1, 100);
HAL_Delay(500);
__HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_1, 999); 
HAL_Delay(500);

を入れてビルドして通ったら,書き込む.

0.5秒ごとにLEDが明るくなったり暗くなったらOK