当前位置: 首页 > news >正文

C51单片机 串口打印printf重定向

uart.c文件

#include "uart.h"void UartInit(void)		//4800bps@11.0592MHz
{PCON |= 0x80;		//使能波特率倍速位SMODSCON = 0x50;		//8位数据,可变波特率。使能接收TMOD &= 0x0F;		//清除定时器1模式位TMOD |= 0x20;		//设定定时器1为8位自动重装方式TL1 = 0xF4;		//设定定时初值TH1 = 0xF4;		//设定定时器重装值ET1 = 0;		//禁止定时器1中断TR1 = 1;		//启动定时器1//配置串口中断EA=1;ES=1;
}void UartSendByte(unsigned char byte)
{SBUF=byte;//检测是否发送完成(标志位)while(TI==0);//发送完成会置1TI=0;//需要手动软件复位}void UartSendString(unsigned char *string){while(*string!='\0') //指针的数据没到最后一位一直执行循环体{    UartSendByte(*string++); //发送指针指向的数据(字节byte)。指针自增,指向下一个数据}
}/*重写printf调用的putchar函数,重定向到串口输出*/
char putchar(char c){//输出重定向到串口UartSendByte(c);return c;  //返回给函数的调用者printf
}

uart.h 

#ifndef __UART_H__
#define __UART_H__#include <REGX52.H>void UartInit(void);		//4800bps@11.0592MHz
void UartSendByte(unsigned char byte);
void UartSendString(unsigned char *string);#endif

main.c文件

#include <REGX52.H>
#include <stdio.h>
//自定义的源文件
#include "uart.h"void main()
{   /* 串口初始化 */UartInit();while(1){/* 利用keil内置的宏来获取编译时的日期和时间,这两个宏是字符串形式,可以直接打印 */printf("Line:%s\r\n",__LINE__); //行号printf("File:%s\r\n",__FILE__); //文件名printf("Complie Data:%s\r\n",__DATE__); //日期printf("Complie Time:%s\r\n", __TIME__); //时间}
}

结果:显示打印信息(STC-ISP)

http://www.lryc.cn/news/362350.html

相关文章:

  • PieCloudDB Database Flink Connector:让数据流动起来
  • 主机CPU访问PCIe设备内存空间和PCIe设备访问主机内存空间
  • 在家AIAA(美国航空航天学会)文献如何查找下载
  • dnf手游版游玩感悟
  • 安卓如何书写注册和登录界面
  • 黄仁勋的AI时代:英伟达GPU革命的狂欢与挑战
  • Linux云计算架构师涨薪班课程内容包含哪些?
  • c语言:自定义类型(枚举、联合体)
  • 2024年适合GISer参加的全国性比赛
  • 番外篇-用户购物偏好标签BP-推荐算法ALS
  • 气膜体育馆的防火性能分析—轻空间
  • 什么台灯对眼睛好?一文给你分享具体什么台灯对眼睛好!
  • python-bert模型基础笔记0.1.00
  • STM32G030C8T6:EEPROM读写实验(I2C通信)--M24C64
  • opencascade 布尔运算笔记
  • GPT-4o:人工智能新纪元的突破与展望
  • 标准化、信息化、数字化、智能化、智慧化与数智化
  • 14-JavaScript中的点操作符与方括号操作符
  • 智慧大屏是如何实现数据可视化的?
  • 【JVM精通之路】垃圾回收-三色标记算法
  • Redis缓存(笔记一:缓存介绍和数据库启动)
  • OrangePi Kunpeng Pro套装测评:开箱与基本功能测试
  • RocketMQ教程(二):RocketMQ以及控制台的安装
  • 电脑记事本怎么恢复之前的内容记录
  • Windows下设置pip代理(proxy)
  • 【调试笔记-20240530-Linux-在 OpenWRT-23.05 上为 nginx 配置 HTTPS 网站】
  • 安装 hbase(伪分布式)
  • Angular-数组循环
  • 初级网络工程师之入门到入狱(一)
  • 数据挖掘与机器学习——分类算法