88问答网
所有问题
我在按键例程中加入了一句 串口输出 printf ,结果按键就不管用了,怎么回事?
如题所述
举报该问题
其他回答
第1个回答 2012-04-04
这是因为printf函数是调用putchar函数输入;
而putchar应该是先判断TI是否为1,不为1则等待为1。如果为1则清0,然后送出一个字符。而单片机上电复位后TI是为零的,因此你如果直接使用printf函数,你的程序就会在putchar函数中等待TI为1。
所以在使用printf前,必须手动将TI=1。
请到keil/c51/lib下查看putchar函数的原文件,就明白这一点。
参考资料:
http://zhidao.baidu.com/question/258231010.html
相似回答
单片机中
串口输出
有
一句
printf
(“%bd”,i); bd是一个什么类型 我直接...
答:
KEIL里扩展出了b,h,l来对输入字节宽的设置:(1)b八位 (2)h十六位 (3)l三十二位 在Keil C51中用
printf输出
一个单字节变量时要使用%bd,如 unsigned char counter;printf("Current count: %bd\n", counter);而在标准C语言中都是使用%d:printf("Current count: %d\n", counter);希望对...
用C51在keil编译的时候
,printf串口输出的
时候,为什么要"IT=1"才能在...
答:
这是因为printf函数是调用putchar函数输入
;而putchar应该是先判断TI是否为1,不为1则等待为1。如果为1则清0,然后送出一个字符。而单片机上电复位后TI是为零的,因此你如果直接使用printf函数,你的程序就会在putchar函数中等待TI为1。所以在使用printf前,必须手动将TI=1。请到keil/c51/lib下查看pu...
大家正在搜
相关问题
海盗船k70RGB红轴机械键盘,我新买的,结果在使用过程中出...
师傅 我系统进入的时候不小心被我丢个东西到键盘上了 结果就这...
win7 32位想升64位 结果重新启动的时候就出现了这一句...
我的笔记本电脑键盘不管用了,而且一打开搜索的东西就一个字母一...
键盘同时按三个键就不管用了怎么办
我的行车记录仪插上内存卡所有按键都不管用了这是为何就开机键管...
电脑键盘开机不管用重启几次就行了怎么回事
ARM按键中断时中断一次响应了两次怎么回事,调试时单步运行正...