主要分三个部分(1)51单片机程序部分;(2)keil工具部分;(3)为何printf输出为串口。
(1)51单片机程序部分
#include #include void InitUART(void)//使用定时器1作为串口波特率发生器 { TH1 = 0xF3; //晶振12mhz 波特率串口上设为2400才不显示乱码代码是4800 TL1 = TH1; TMOD |= 0x20; //定时器1方式2 SCON = 0x50; //串口接收使能 ES = 1; //串口中断使能 TR1 = 1; //定时器1使能 TI = 1; //发送中断标记位,必须设置 } //毫秒延时函数 void delay_ms(unsigned int t) { unsigned char a,b; while(t--) { for(b=102;b>0;b--) for(a=3;a>0;a--); } } void main() { InitUART(); //初始化串口 EA = 1; //开总中断 while(1) { delay_ms(500); printf("hellon");//串口打印结果 } } 代码部分注意事项: 代码中包含 头文件#include 串口初始化时,TI = 1; (2)keil设置显示串口输出结果 在C51中、printf和scanf函数主要用于串行数据的收发 有时在进行软件调试的时候,需要使用printf函数输出一些结果 要在Keil中看到这些结果,只需要两步:(当然首先要进入调试界面再做以下两步) 1 设置 打开Peripherals-->Serial窗口,选择IRQ中的TI、RI两个选项 2 打开输出窗口 打开View-->Serial Window #1窗口 在程序中的printf语句的输出就显示在这个窗口中 现在就到程序窗口运行程序、运行结束后打开Serial窗口就可以看到printf的输出了。 (3)为何printf从串口输出 查看了keil的帮助文件里面的printf函数说明,原来printf函数最终是调用putchar函数来实现打印输出字符的。 KeilC51LIB文件夹里面找到了putchar.c文件,putchar函数使用TI和SBUF,确定为串口终端输出。 注意:printf重定向功能,即用户自己定义putchar函数,例如 //UART1 发送串口数据 void UART1_SendData(char dat) { ES=0; //关串口中断 SBUF=dat; while(TI!=1); //等待发送成功 TI=0; //清除发送中断标志 ES=1; //开串口中断 } //UART1 发送字符串 void UART1_SendString(char *s) { while(*s)//检测字符串结束符 { UART1_SendData(*s++);//发送当前字符 } } //重写putchar函数 char putchar(char c) { UART1_SendData(c); return c; }
上一篇:关于51单片机使用printf串口调试
下一篇:基于51 单片机的串口收发数据
推荐阅读最新更新时间:2024-11-19 16:36
设计资源 培训 开发板 精华推荐
- 用于街道照明的电力线通信模块
- LT8631IFE 400kHz、5V/1A 高压/温度降压转换器的典型应用电路
- DC2063A,用于 LTC2875 60V 故障保护 3.3V 或 5V 高速 CAN 收发器的演示板
- 典型应用电路——FXAS21002C 3轴数字角速率陀螺仪的I2C模式
- LTM4627EV 演示板,高效 40A 多相降压电源
- LT3756EUD-2 降压-升压模式 LED 驱动器的典型应用电路
- 使用 LT1054CN8 3.5V 至 5V 稳压器的典型应用
- 内蒙古科技大学校园卡
- DS51530B、MCP23008/MCP23S08 评估板
- 具有迟滞功能的 MC33074ADR2G 低输入电压比较器的典型应用
- Discover mmWave 走进 TI 毫米波雷达世界 快速获得设计技能
- 有奖直播:超小型封装 TI MSPM0 MCU 可优化设计空间,实现更多可能
- EEWorld邀你来拆解(第10期)——玩具总动员
- 看专题答题赢好礼!PI 稳定可靠的TOPSwitch-JX开关电源IC
- TI 工业知识挑战赛开启,一起争霸前20强,赢取属于你的荣耀!
- 【温故喝新之单片机版块】温2016年MCUs,喝2017年版块新篇章
- 文晔科技有奖直播:C2000在电机控制中的应用 等你来看!
- 体积小、功耗低、安全性高,专用加密芯片ATSHA204 精彩专题,答题有好礼!
- Littelfuse【智能家居的电路保护方案】在线研讨会 11月22日10点 强势登场!预报名、参与研讨会赢好礼!
- 申请ufun学习板,入门&深度学习模拟,工程技能