0
IARコンパイラを使用してSTM32F401RE_NUCLEOでscanf()関数を使用します。scanf()に最初の文字がありません
これは私のオーバーロードされたfgetc関数です。
int fgetc(FILE *f) {
char ch;
while (__HAL_UART_GET_FLAG(&UartHandle, UART_FLAG_RXNE) == RESET);
HAL_UART_Receive(&UartHandle, (uint8_t*)&ch, 1, 0xFFFF);
return ch;
}
そして、以下のようなmain関数でscanfを使用します。
int n;
printf("[DBG] Input: ");
scanf("%d", &n);
printf("[DBG] Output: %d\n", n);
端末から「123」と入力した場合は「23」と表示されます。
%d、%u、%fは同じです。
ただし、%cのみ正しく動作します。
どうすればこの問題を解決できますか?