【发布时间】:2017-10-25 13:01:38
【问题描述】:
我想在带有 IAR 编译器的 STM32F401RE_NUCLEO 中使用 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 可以正常工作。
我该如何解决这个问题?
【问题讨论】: