串口利用printf函数打印信息
一、原理:
思路:
我们初学c语言时应该都用printf函数在计算机中打印过信息,而原本的printf函数是利用putchar函数向内部发送信息,如果我们修改一下putchar函数,向串口发送信息,就能实现printf函数在串口中打印信息。
为什么我们可以实现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;
}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
