51串口printf
时间: 2023-12-07 20:39:26 浏览: 158
51单片机串口printf函数
4星 · 用户满意度95%
51单片机可以通过串口打印信息,下面提供两种方法实现51串口printf:
方法一:在主程序中加入stdio.h并配置好串口的波特率,然后直接用printf打印信息即可。具体实现代码如下:
```c
#include "config.h"
#include "stdio.h"
#include "Uart.h"
void main() {
ConfigUART(9600);
printf("hello printf function in uart.c");
while(1);
}
```
方法二:对printf调用的putchar函数重新定向,也就是自定义一个putchar函数。具体实现代码如下:
```c
#include <reg52.h>
#include <stdio.h>
void putchar(char c) {
SBUF = c;
while(TI == 0);
TI = 0;
}
void main() {
TMOD = 0x20;
TH1 = 0xfd;
TL1 = 0xfd;
TR1 = 1;
ES = 0;
EA = 1;
printf("hello printf function in uart.c");
while(1);
}
```
其中,TMOD寄存器用于设置定时器的工作方式,TH1和TL1寄存器用于设置波特率,TR1寄存器用于启动定时器,ES和EA寄存器用于开启中断。putchar函数将要输出的字符写入SBUF寄存器,然后等待TI寄存器变为1,表示发送完成,将TI寄存器清零。
阅读全文