printf对串口通信有影响

辛昕   2012-4-19 11:41 楼主
在linux下做一个串口通信程序,发现一个奇怪的现象。

我们使用的串口0做通信,故而,我们已经把串口0作为 控制终端 的选项关掉了——就是 ZOC等串口终端上已无法看到开机和执行的信息了。

近期发现一个奇怪的现象。
在串口通讯中,有时,linux主机接收从机发送的数据会延缓。一个无意的尝试,我们在接收之前,加了一句printf指令,结果就正常了。

为了辩析这句printf产生的意义,我们试过用延时指令替代这句printf,没用——事实上,调试时我们在此延时了不短的时间,也没用。

再后来,我们在查询串口数据中,在一定延时后,加插一个无效数据发送,结果也可以解决问题。

所以,我们分析,这个printf的意义在于给 串口做了某种激发动作?

回想起来,printf是把标准输出流流到标准输出设备,因为51,我才知道这个标准设备大多是串口。

刚好我们用串口0做通讯——由硬件限制,一时没办法用其他串口做通信测试。

我怀疑就是,即使关闭了它作为 控制终端,却没办法 改变这个作为标准输出设备。

不知道该通过什么变量来设置,或者 环境变量?
强者为尊,弱者,死无葬身之地

回复评论 (4)

呵呵,还不错,定一下
android培训
点赞  2012-4-19 14:53
大师的帖子就是高深
点赞  2012-6-26 10:23

回复 板凳 幻城 的帖子

千万别这么说。
大多数时候都是不懂,在猜测。

往往因为缺乏经验,总是想到一些稀奇古怪的原因上去了。

当然——
这个问题现在,似乎也没有完全搞明白。
强者为尊,弱者,死无葬身之地
点赞  2012-6-26 15:33
mark学习啊
点赞  2012-6-30 15:19
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复