串口利用printf函数打印信息

一、原理:

  1. 思路:

我们初学c语言时应该都用printf函数在计算机中打印过信息,而原本的printf函数是利用putchar函数向内部发送信息,如果我们修改一下putchar函数,向串口发送信息,就能实现printf函数在串口中打印信息。

  1. 为什么我们可以实现putchar函数的重定义(重映射)呢?

extern char putchar (char);

在"stdio.h"头文件中,将putchar函数用extern关键字修饰了,使它可以在其他文件被修改,即重映射

二、参考代码:(STC15F2K60S2)

#include 
#include  
void UartInit(void)    ;
void main()
{
    UartInit();
    while(1)
    {
        printf("Hello World!\r\n");

    }
}

void UartInit(void)        //9600bps@12MHz
{
    SCON = 0x50;        //8位数据,可变波特率
    AUXR |= 0x40;        //定时器时钟1T模式
    AUXR &= 0xFE;        //串口1选择定时器1为波特率发生器
    TMOD &= 0x0F;        //设置定时器模式
    TL1 = 0xC7;            //设置定时初始值
    TH1 = 0xFE;            //设置定时初始值
    ET1 = 0;            //禁止定时器中断
    TR1 = 1;            //定时器1开始计时
}


/*
    重映射putchar函数
*/
char putchar (char c)
{
    SBUF = c;
    while(!TI);
    TI = 0;
    return c;
}

你可能感兴趣的:(平衡小车,单片机,学习,51单片机)