Keil MDK printf()函数重定向(移植printf函数)

准备工作

1.点击魔法棒,打开工程选项

2.点击target,勾选Use MicroLIBKeil MDK printf()函数重定向(移植printf函数)_第1张图片

一、单串口可用

//对printf重定向到串口

1.在串口模块串口头文件中添加

#include 

2.重写fputc函数,无需在串口头文件中声明该函数

//重写fputc函数
int fputc(int ch, FILE *f)
{
	Serial_SendByte(ch);
	return ch;
}

3.测试:在主函数中使用printf函数,并在串口中打印。

二、多串口可用

//直接在主函数中使用

    char string[100];                    //定义字符串
	sprintf(string,"Num=%d\r\n",789);    //打印到字符串
	Serial_SendString(string);           //发送字符串

测试:

Keil MDK printf()函数重定向(移植printf函数)_第2张图片

三、封装sprintf函数

1.在串口模块中添加头文件

#include 

2.封装,并在串口头文件中声明

void Serial_Printf(char *format, ...)
{
	char String[100];
	va_list arg;                     //定义一个参数列表变量
	va_start(arg,format);            //format接收参数表,放入arg
	vsprintf(String,format,arg);     //(打印位置,格式化字符串,参数表)
	va_end(arg);                     //释放参数表
	Serial_SendString(String);
}

 3.在主函数中调用Serial_Printf(),并在串口打印

你可能感兴趣的:(Keil,MDK,单片机,嵌入式硬件,c++,stm32)