ものはこれ https://www.st.com/ja/evaluation-tools/nucleo-f411re.html
NucleoはPA5にHアクティブの緑色LEDが搭載されている.
/* USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, 1);
HAL_Delay(500);
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, 0);
HAL_Delay(500);
}
/* USER CODE END 3 */
}
メモ : スペース4個でソースコードとして表示される
Nucleoボードには,USB-UARTコンバータが内蔵されている. ピンの割当は,PA2:TX(マイコン側が送信)/PA3:RX(マイコン側が受信)である. マイコン側でUARTのエンジンを組むことで,ターミナル処理が実現可能である.
ターミナルを実現する上で必要なのは以下の要素.
DMAを使うのが定石だが,UART程度なら割り込みでも実装可能である(基本的に単純なものが良い.DMA使うとコードが増える).
9600bps,パリティなし.8bit長,ストップビット1. なお,9600bpsというのはとても遅い. 1バイト送るのに10bit(本体8bit,ストップビットとスタートビットで1ビットずつで合計10bit)必要であるから,960byte/secである. 1バイト送るのに1msecかかる.
割り当てられているUARTリソースはUSART2である.
STM32では,HALなるAPIが提供されているが,あまり使い勝手が良いものではない. 自分でリファレンスマニュアル読みながら実装していくのが良い.
受信バッファフルで割り込みを起こす. 受信データを読み出して,配列に格納する.
送信バッファ空で割り込みを起こす. データがまだ存在すれば,それを送信する. なければ終了.