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!」と表示された。
これで目的は達成。



