STM32で遊ぼうその2:HALを使ってNUCLEOのボタンを押してUARTでターミナルに文字を表示させる

投稿日:2023年8月26日
最終更新日:2023年8月26日

STM32でUARTを使ってみる

今回はSTM32のHALを利用して、Nucleo-F401REボード上のボタンを押してUSBで接続したPCとUART通信して「Hello World!」と表示させてみたのでその時のメモを残しておく。

ちなみに私は以下の本を読みながら遊んでいる。STM32CubeIDEの細かい設定方法は書かないので、詳しくは以下の本を読んでください(丸投げ)。あと、まだ内容を十分理解せずに書いている部分もあるのであしからず。

 

開発環境

Windows 10

STM Nucleo-F401RE

Amazon Corretto 8

STM32CubeIDE (Version: 1.13.0)

Tera Term

 

GPIO割り込みの設定

Projectは「STM32 Project」からBoard SelectorでNucleo-F401REを選択して作成する。作成したら、iocファイルのPinout&ConfigurationでPC13 pinをGPIO_EXTI13に設定。

他の設定はデフォルトでOK。これで準備完了。

 

UARTで文字表示

main.cのUSER CODEにコードを追加していく。以下に追加したコードを羅列していく。

/* USER CODE BEGIN 0 */
__IO uint8_t Pushed;
/* USER CODE END 0 */
  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
	  Pushed = 0;
	  while(Pushed == 0);
	  	  uint8_t Buf[] = "Hello World!\r\n";
	  	  HAL_UART_Transmit(&huart2, Buf, strlen((char*)Buf), 1000);
  }
  /* USER CODE END 3 */
/* USER CODE BEGIN 4 */
void	HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
	Pushed = 1;
}
/* USER CODE END 4 */

あとはPCとUSBケーブルで接続して、ターミナルソフト(私はTera Termを使っている)を接続した状態でBuildして実行するだけ。以下が実行している様子。ちょっとわかりづらいが、青いユーザーボタンを押すとTera Term上に「Hello World!」と表示された。

これで目的は達成。


投稿者: wakky

映画と旅行が大好きなエンジニア。お酒、ゲーム、読書も好き。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください