STM32F303K8 GPIO Output Lチカ
開発環境
評価ボード | Nucleo STM32F303K8 |
IDE | System Workbench for STM32 (SW4STM32) |
Library | Hal Library |
OS | windows 10 pro |
デバッグの設定が完了したら、とりあえずLチカしてみたいとおもいます。
作成したSW4STM32のプロジェクトで以下のコードを追加します。
/* USER CODE BEGIN 3 */ HAL_GPIO_WritePin(GPIOB, GPIO_PIN_3, SET); HAL_Delay(500); HAL_GPIO_WritePin(GPIOB, GPIO_PIN_3, RESET); HAL_Delay(500); } /* USER CODE END 3 */
もしくは、ユーザーラベルを用いて
/* USER CODE BEGIN 3 */ HAL_GPIO_WritePin(LD3_GPIO_Port, LD3_Pin, GPIO_PIN_SET); HAL_Delay(500); HAL_GPIO_WritePin(LD3_GPIO_Port, LD3_Pin, GPIO_PIN_RESET); HAL_Delay(500); } /* USER CODE END 3 */
STM32CubeMXの設定で、Keep User Code when re-generatingにチェックが入っているので、
/* USER CODE BEGIN */ /* USER CODE END */
に挟まれたコードはSTM32CubeMXの設定を更新後も維持されます。
GPIOの出力は、
HAL_GPIO_WritePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState)
のようになっています。
引数は次のように定義されています。
@param GPIOx where x can be (A..F) to select the GPIO peripheral for STM32F3 family
@param GPIO_Pin specifies the port bit to be written.
This parameter can be one of GPIO_PIN_x where x can be (0..15).
@param PinState specifies the value to be written to the selected bit.
This parameter can be one of the GPIO_PinState enum values:
@arg GPIO_PIN_RESET: to clear the port pin
@arg GPIO_PIN_SET: to set the port pin
今、Nucleoボードでは、PB3にオンボードのユーザーLEDがアサインされているので、
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_3, SET); // High出力 HAL_GPIO_WritePin(GPIOB, GPIO_PIN_3, SET); // Low出力
で出力することができます。
出力ピンの詳細設定はSTM32CubeMXのConfigurationタブの
GPIOを選択して、
ここでそれぞれのピン毎に設定することができます。
GPIO ouput level: ピンの初期値
GPIO mode: プッシュプル出力かオープンドレイン出力か
GPIO Pull-up/Pull-down: 内部プルアップ/プルダウンの設定
Maximum output speed: 出力速度(基本的にはLowで良いと思います。速さが気になったらHighに変えればいいかと、クロックに応じた選択肢が出てくるのでどれでも問題なく動作します。)
User Labael: ユーザーラベル(今回NucleoではLD3でNameがついていたので合わせました。)
といった感じで細かく設定することができます。
デバッグの様子
106~109にブレークポイントを付けて、一行ずつ実行しています。
緑色のLEDがついたり消えたりします。
20170821の記事