1、printf()函数在C语言中表示的意思是将要输出的字符数据等输出显示到显示屏上,而在单片机上没有显示屏只有串口输出,这时就需要重新定义一下printf()函数,printf()函数里面是调用fputc()函数,所以需要重新定义fputc()函数;
2、重新定义fputc()函数,将fputc()函数所要输出的数据写入到串口发送数据寄存器,即用串口输出所要输出的数据,以串口3为例,重新定义fputc()函数如下:
int fputc(int ch,FILE *f)
{
HAL_UART_Transmit(&huart3,(uint8_t *)&ch,1,0xff);
return ch;
}
3、需要注意的地方:
(1)fputc()函数可以在工程中的任意文件定义,比如在main.c中;
(2)使用printf()函数需要调用头文件stdio.h;
4、使用例程
#include "stdio.h"
...
int main(void)
{
uint8_t count=1;
...
while(1)
{
printf("第%d次串口输出!\r\n",count++);
HAL_Delay(500);
}
}
...
//重定义printf()函数
int fputc(int ch,FILE *f)
{
HAL_UART_Transmit(&huart3,(uint8_t *)&ch,1,0xff);
return ch;
}