在stm32中先配置使能一个uart串口,保存自动生成uart的.h .c 文件
接着在头文件中包含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解决
标签:__,ch,int,串口,printf,PROTOTYPE,调试 From: https://www.cnblogs.com/genm/p/17510931.html