关于 51 单片机使用 printf 函数的 2 种方法
单边机编程中总会用到printf 函数作为调试工具,编译器自带 printf 函数只能使用uart1,
但是有时候有于硬件限制,实际的调试串口不一定是 uart1,所以我总结以下 2 种整改 printf
函数的方法,使得 uart1,uart2,uart3,uart4 均可使用 printf 函数。
方法一:自建 APP_printf 函数
自建的 APP_printf 函数与自带的 printf 函数用法一致,分为四步
第一步:添加头文件
由于 APP_printf 函数用到了参数列表,所以必须包含以下 3 个头文件
#include <stdarg.h>
#include <stdlib.h>
#include <stdio.h>
第二步:建立 APP_printf 函数
/******************************************************
*函数功能:APP_printf 函数类似以 printf 函数
*输入参数:*fmt,... printf 函数参数,最大参数可通过 max_num 大小更改
*输出返回:无
*函数备注:无
*作者日期:2020-04-21 code Mr.chai
*维护内容:
*******************************************************/
void APP_printf(const uchar *fmt , ... )
{
static uint max_num = 50 ;
volatile va_list args;
volatile uchar xdata send_buff[max_num];
memset(send_buff,' ', max_num);
va_start(args, fmt);
vsprintf(send_buff, fmt, args);
va_end(args);
uart_debuge_send(send_buff);
}
第三步:建立 APP_printf 函数与单片机硬件连接
/******************************************************
*函数功能:printf 函数子函数 uart1 -- uart4 均可
*输入参数:*s 发送字符串指针,
*输出返回:无
*函数备注:无
*作者日期:2020-04-21 code Mr.chai
*维护内容:
*******************************************************/
评论0