今天遇到使用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 }
然后需要将项目设置中的这两个选项打开
配合以上代码重定义即可解决问题.
|