打印

请教各位老师:关于C51中printf()函数

[复制链接]
5677|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
冷漠|  楼主 | 2010-3-21 20:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 冷漠 于 2010-3-21 20:18 编辑

刚接到一个主从多机通信任务,主站需要把一个数组内容
uchar   shuzu[ ]={5E,00,EF,00,DF,08,5E};
通过89s52串口发送到PC机(串口)。印板硬件都有了,像max232,9针插座什么的,关键是软件:书上写的分立语句虽然看懂,但都不是太简单。——老板只给了3天时间。

我能不能串口初始化以后用 printf ( )一条语句就完成?谁以前做过?  60分先谢了。如果能项目中标,将再次感谢。

PC机上是用的“串口调试助手”,也是现成的。

相关帖子

沙发
zgl7903| | 2010-3-21 22:57 | 只看该作者
看看 keil里的帮助 printf选中了F1

使用特权

评论回复
板凳
HWM| | 2010-3-21 23:04 | 只看该作者
还不如自编一段小程序更来得简单明了,执行效率也更高。

使用特权

评论回复
地板
mohanwei| | 2010-3-22 12:16 | 只看该作者
printf可以直接发16进制码的……

printf("\x5E\x00\xEF\x00\xDF\x08\x5E");

使用特权

评论回复
5
mohanwei| | 2010-3-22 12:17 | 只看该作者
没看到中间有0,有0就不一定行了,你可能需要试一下……

使用特权

评论回复
6
学海泛舟| | 2010-3-26 21:03 | 只看该作者
围观~~~~~~~~

使用特权

评论回复
7
原野之狼| | 2010-3-26 22:20 | 只看该作者
坐等冷漠大侠给出结果

使用特权

评论回复
8
ejack| | 2010-3-26 22:53 | 只看该作者
uchar   shuzu[ ]={5E,00,EF,00,DF,08,5E};

这行编译不会报错???

使用特权

评论回复
9
古道热肠| | 2010-3-27 00:19 | 只看该作者
试试下面这写法:
printf("%02X,%02X,%02X,%02X,%02X",(uint)shuzu[0],(uint)shuzu[1],(uint)shuzu[2],(uint)shuzu[3],(uint)shuzu[4]);

使用特权

评论回复
10
古道热肠| | 2010-3-27 00:21 | 只看该作者
%默认是对应后面的整形变量。

使用特权

评论回复
11
hgjinwei| | 2010-3-27 09:28 | 只看该作者
这个貌似关键点不在"printf",而是在通信吧?

使用特权

评论回复
12
冷漠|  楼主 | 2010-3-27 11:18 | 只看该作者
本帖最后由 冷漠 于 2010-3-27 11:21 编辑

LS说的对,主要是模拟调试时如果能显示在屏幕上,就相当于实际能通过串口发送出去。

古道热肠和mohanwei的方法已记录下了,感谢!

这几天老板催命,下星期研究实验一下。

我觉得好像可以像字符串输出那样来输出数组(16进制数据串),例如:printf(shuzu);做软件的人,应该想到、做到这一点呀。还是别人已经做了,是我不会用?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

17

主题

921

帖子

4

粉丝