STM32F401 PWM制御のやり方・使い方
CubeMXでピンの設定を行う 今回はSTM32でPWM制御をやってみたい。 どうやら、TIMというものを使って行っていくらしい。 その中でも、TIM6とTIM7というものが割と使いやすいものらしい。 しかし、STM32F401にはTIM6やTIM7といった設定が見当たらない・・・。 調べたら、TIM2を使って似たようなことをやっている人がいたので、その人の記事を参考にしてやっていこうと思う ピンの設定を行う。 参考記事通りに今回はオンボードのLEDを使っていこうと思う。 まずは「PA5」を「TIM2_CH1」に変更する。 ピンの設定で「Timers」→「TIM2」を選択する。 「Mode」の「Channel1」を「PWM Generation CH1」にする。 「Prescaler」を0から「3」にする。 「Counter Period」を「999」にする。 設定できたら、保存を行いソースコードの更新を行う。 main.cでプログラムを書いていく 参考記事には「static void MX_TIM2_Init(void)」関数内にある 「TIM_masterConfigTypeDef smasterConfig」と「TIM_OC_InitTyapeDef sConfigOC」をグローバル変数にすると書いてあるので、まずはその二つをこんな感じにコメントアウトしておく。 static void MX_TIM2_Init(void) { /* USER CODE BEGIN TIM2_Init 0 */ /* USER CODE END TIM2_Init 0 */ //TIM_MasterConfigTypeDef sMasterConfig = {0}; //TIM_OC_InitTypeDef sConfigOC = {0}; /* USER CODE BEGIN TIM2_Init 1 */ /* USER CODE END TIM2_Init 1 */ htim2.Instance = TIM2; htim2.Init.Prescaler = 3; htim2.Init.CounterMode = TIM_COUNTERMODE_