51单片机上移植C语言的printf()

2019-04-15 19:31发布

移植了C语言的printf()函数到51单片机上,实现了在51单片机的串口类pc端的printf()输出。

使用方法:

  1. 在项目工程中添加xxprintf.h和xxprintf.c文件
  2. 在项目中需要使用xxprintf()函数的地方引入头文件xxprintf.h,在xxprintf.h中引入单片机相关头文件
  3. 在xxprintf.h中的MaxSize 可根据需要调整最大输出字符数量,例如修改为一下:
#define MaxSize 40     //确定最长的输出字符数量        意为输出最大字符数量为40
  1. 使用格式示例(注意在51系列单片机串口输出中使用’ ’ 作为换行符):
xxprintf(“1234”); xxprintf(“1234 ”); xxprintf(“aaa %d bbb ”,num); xxprintf(“aaa %c bbb ”,ch);

xxprintf.h

#ifndef __XXPRINTF_H #define __XXPRINTF_H #include #include #include #include #define MaxSize 50 //确定最长的输出字符数量 //向串口发送一个字符 void send_char_com( char ch); void send_string_com(char *p_str); int xxprintf(const char *fmt, ...); #endif

xxprintf.c

#include "xxprintf.h" //***************************************** 自定义模拟printf()函数实现******* void send_char_com( char ch) { SBUF=ch; while(TI==0); TI=0; } //向串口发送一个字符串 void send_string_com(char *p_str) { while((*p_str)!= '