liqingwu123456 发表于 2008-12-2 12:31

C51中printf跟直接用SBUF有什么区别?

我知道printf是格式化输出,那么我只要传一个8位数,它们是不是就没有区别?

另外有个很重要的,printf只要我用了,就会不停得往串口输出数,哪怕我没把它放在循环语句中是不?比如我这样:
while(1){
while(RI){
   n=SBUF;
   RI=0;
   TI=1;                  //???
   t=read(n);
   delay(10000);
   printf("%d\n",t);
          }
      }
我往串口只发一次数据,它就会不停的回复我数据(实测下来好像是的哦,不明白)???
TI=1;这句话一定要加吗???

wangbaogang 发表于 2008-12-2 13:24

其实我没有用过KEIL提供的PRINTF

要做什么格式转换,我都自己做,这样能省掉不少的PRINTF的通用接口

我只这样说,没用过我也不太敢断定

fuio 发表于 2008-12-3 11:38

一顶

mufengyang 发表于 2008-12-3 13:27

不推荐用PRINTF,自己写串口读串口容易控件得多。

oneforlove 发表于 2008-12-3 19:27

这个printf貌似是使用仿真器用,
楼主看看有没有这个函数的源码啊。

其实楼主完全自己写一个即可。

sdaac 发表于 2008-12-3 20:23

printf可以格式化输出。。。。。比如我要往上位机发一个回车符,请教大侠们用SBUF=?

yjx654321 发表于 2008-12-3 21:04

'\n''\r'

WIN下你要发这两个字符

fsunboy 发表于 2008-12-4 08:44

回LS,SBUF是个寄存器,只能给它8位二进制数吧,具体用数表示是什么?ASCII?

yanhaihaha 发表于 2008-12-4 09:12

SBUF随时会被改变的

fengjia 发表于 2008-12-4 09:48

引用 8 楼 xqhrs232 的回复:
SBUF随时会被改变的


????
我程序很小,会不会碰到SBUF我很清楚。。。。。。。
我只想问直接SBUF怎么实现PRINTF功能,比如回车符。。。

ztl7984 发表于 2008-12-4 17:02

谁把printf的功能、用法说下好么?传说可以自己改它的功能的,请问在哪改??

ledart 发表于 2008-12-4 17:05

还有啊,我2楼说的什么,怎么版主删了啊,好像还是疑问吧。。。。

zshasd1948 发表于 2024-10-9 10:35

页: [1]
查看完整版本: C51中printf跟直接用SBUF有什么区别?