今天遇到使用printf打印无输出问题,查了一下资料解决了,下面把相关解决方法放在下面:
由于CubeIDE没有Keil的Use MicroLIB选项,而且CubeIDE默认采用的是GNUC编译,所以putchar的接口有所不同
1 #include <stdio.h>
2 #ifdef __GNUC__
3 #define PUTCHAR_REDEFINE int __io_putchar(int ch)
4 #else
5 #define PUTCHAR_REDEINFE int fputc(int ch, FILE *f)
6 #endif
7 PUTCHAR_REDEFINE
8 {
9 HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xffff);
10 return ch;
11 }
然后需要将项目设置中的这两个选项打开
配合以上代码重定义即可解决问题.
|