在头文件中包含stdio.h
再在c文件中添加重定向:
GCC和keil等不同编译器调用printf时候是不同的
可以定义一个宏保证他们的兼容性,即使printf函数重定向
- #ifdef __GNUC__ //选择gcc编译时才会定义的宏
- #define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
- #else
- #define PUTCHAR_PROTOTYPE int fputc(int ch,FILE *f) //单片机字符也是int类型保存
- #endif
-
-
- PUTCHAR_PROTOTYPE
- {
- HAL_UART_Transmit(&huart1,(uint8_t *)&ch,1,0xFFFF);
- return ch;
- }
串口浮点数输出: 由于单片机硬件资源限制(内存小),STM32单片机里C语言标准库的printf()并不支持浮点数的输出 可以在Properties Settings中添加 -u _printf_float解决
|