用C51在keil编译的时候,printf串口输出的时候,为什么要"IT=1"才能在串口看到输出结果

#include<reg52.h>#include<stdio.h>voidmain(void){SCON=0X50;TMOD|=0X20;TH1=211;TR1=1;/... #include <reg52.h>
#include <stdio.h>

void main(void)
{
SCON=0X50;
TMOD|=0X20;
TH1=211;
TR1=1;
// TI=1;
while(1)
{
printf("hello");
while(1);
}
}
展开
 我来答
高山入云
2011-04-26 · TA获得超过1072个赞
知道小有建树答主
回答量:204
采纳率:0%
帮助的人:154万
展开全部
这是因为printf函数是调用putchar函数输入;
而putchar应该是先判断TI是否为1,不为1则等待为1。如果为1则清0,然后送出一个字符。而单片机上电复位后TI是为零的,因此你如果直接使用printf函数,你的程序就会在putchar函数中等待TI为1。
所以在使用printf前,必须手动将TI=1。

请到keil/c51/lib下查看putchar函数的原文件,就明白这一点。
意法半导体(中国)投资有限公司
2023-06-12 广告
STM32F103是一款高性能的嵌入式芯片,由意法半导体(STMicroelectronics)公司生产。它是STM32系列芯片之一,具有紧凑、低功耗、高性能等特点,被广泛应用于嵌入式系统中。STM32F103的主要特点包括:1. 集成了A... 点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式