Lチカで始めるSTM32 Nucleoマイコン【組み込みの登竜門】
STM32のペリフェラルGPIOを設定して出力のLEDを点滅させることは実施している動作自体は単純ですが使用するマイコンの初期設定からビルド、そしてマイコンまでの転送まで一連の手順が成功したことを意味しています。まずは手順にしたがって点滅まで到達してください。
マイコンのプログラムで最も初歩的なプログラムといえば出力に接続したLEDを任意に点灯、消灯させるいわゆるLチカプログラムではないでしょうか。
実施している動作自体は単純なものですが、出力のLEDをコントロールすることは、使用しているマイコンの初期設定からプログラムビルド、そしてマイコンまでの転送まで一連の手順が成功したことを意味しています。
開発全体から見ると小さな一歩ですが、マイコンを操作するひと、特に初心者にとってははじめの大きな関門を突破したことになります。組み込み技術の登竜門的なアプリケーションです。
Lチカの回路
設定仕様:
入力:PC13 フローティング入力 押しボタンスイッチ
出力:PA5 プッシュプル出力+500Ω+LED
プログラム解説
初歩Lチカプログラム
アプリgpio.cは入力としての押しボタンSWを押したときだけ出力LEDが点灯するプログラムです。単純なものですが、これにはマイコンを操作するための最小限の要素が含まれています。
GPIOをアプリケーションで使うにあたって、必須なものは①指定したGPIO入力ポートのピン状態を読み込むことと、②指定した出力ポートに1か0を設定することです。
① 指定したGPIOポートのピン状態の読み込み
指定した入力ピンの状態を読み込むのにGPIO_ReadInputDataBit関数を使用します。
関数プロトタイプ:
uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
設定例:if((!GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_13))==SET){}//PC13の読み込み
関数の第1引数は設定対象のGPIOポートを指定します。
関数の第2引数は使用するピンを指定します。
② 指定したGPIOポートのピンへ出力設定をセット
指定したGPIOポートのピンへ出力状態をセット(1)するにはGPIO_SetBits関数を使用します。
関数プロトタイプ:
void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
設定例:GPIO_SetBits(GPIOA, GPIO_Pin_5);//PA5をセット(1)に設定
関数の引数はGPIO_ReadInputDataBit関数と同じです。
指定したGPIOポートのピン出力へ設定をリセット
指定したGPIOポートのピンへ出力状態をリセット(0)するにはGPIO_ResetBits関数を使用します。GPIO_SetBits関数の反転です。
gpio.cでは押ボタンスイッチを押すと入力PC13がSET(1)となり出力PA5が1でLEDが点灯します。