
已使用如下代码重定向,prinrf可以正常使用,但是无法使用getchar和scanf函数,求大佬解答 #ifdef __GNUC__ #define PUTCHAR_PROTOTYPE int __io_putchar(int ch) #define GETCHAR_PROTOTYPE int __io_getchar(FILE *f) #else #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f) #define GETCHAR_PROTOTYPE int fgetc(FILE *f) #endif /* __GNUC__ */ PUTCHAR_PROTOTYPE { HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, HAL_MAX_DELAY); return ch; } GETCHAR_PROTOTYPE { uint8_t ch = 0; HAL_UART_Receive(&huart1,&ch, 1, 1000); return ch; } main函数中: while(1) { ch = getchar(); printf("输入的是:%c", ch); } |