找回密码
 注册
LabVIEW+单片机学习套件全套教程资料下载[免费]LabVIEW论坛精华列表贴USB0816数据采集卡《LabVIEW宝典》
LabWindows/CVI论坛精华贴NET0816以太网数据采集卡RC0210远程设备授权系统 关闭关停锁定打开设备 户外分布式数据采集
NET1624低速高精度以太网数据采集卡WIFI0824SD无线WIFI网络数据采集卡脱机运行 SD存储 小尺寸微型 串口采集远程采集 安卓 手持移动采集 纪录仪
查看: 1833|回复: 4

串行通信时,按顺序给com口发两个不同的读取数据命令时,有什么要求?

[复制链接]
发表于 2007-10-9 18:14:35 | 显示全部楼层 |阅读模式
我的程序,下面的压缩包中,在case中, 必须发送两个命令来完成功能。

其中:第一个命令 #saveCOUnt\r\n? 用来返回数据的个数,第二个命令#SAVEdata?\r\n 用来返回数据。

第一个命令只能返回来,数据有多少个,第二个命令才能返回来数据的具体数值 。

加断点运行,可以执行到,送第二个命令处。

执行过程中,在高亮状态下,第一个命令返回的数据是正确的,而第二个命令返回始终为空(bytes at

port 始终为0字节) 。


(#CANCel?\r\n命令用来结束端口向上传递数据。我加了和不加都是一样的效果)

提问:

我问的是串行通信中,在一个case中, 如果要给com口按照时间的顺序,发送不同的命令。在发送多个命

令的时候,有没有要求? 我发送的第二个命令有没有送到com口,怎么观察?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
发表于 2007-10-9 22:41:13 | 显示全部楼层
拿串口调试助手先手动发送命令字看看效果如何,如果的确没有反应,可能说明硬件存在问题和不足;
然后再把你的程序的花样去掉,留下最简单的架构顺序发下命令字,看看工作情况,
通过实际的测试比较和验证,得出自己的结论,到底应该如何使用。
实际应用中就是这么多的麻烦事情,需要耐心,不耐心的时候出去散散步缓缓精神再做就好了。
回复 顶

使用道具 举报

 楼主| 发表于 2007-10-9 22:49:52 | 显示全部楼层
手动发送#saveCOUnt\r\n?  ,如果硬件处于MEM状态,返回一包数据,#SC 00 06\r\n.  (表明有6组数据)
如果硬件不在MEM状态,返回一包数据,#NACK\r\n。

手动发送#SAVEdata?\r\n ,
如果硬件正确,发送一条指令,返回所有的6组数据,每个数据29字节。
如果硬件不在MEM状态,则只返回一包数据,,#NACK\r\n。

通过串口助手调试说明,下面的硬件发送没有问题。
回复 顶

使用道具 举报

 楼主| 发表于 2007-10-9 22:50:34 | 显示全部楼层
原帖由 wdyjz 于 2007-10-9 22:41 发表
拿串口调试助手先手动发送命令字看看效果如何,如果的确没有反应,可能说明硬件存在问题和不足;
然后再把你的程序的花样去掉,留下最简单的架构顺序发下命令字,看看工作情况,
通过实际的测试比较和验证,得出自 ...



程序中没有任何花样阿,都是必要的东西。
回复 顶

使用道具 举报

发表于 2007-10-10 10:43:40 | 显示全部楼层
看的有些晕,
建议你把程序简化一下,
然后把2个读写程序分别作成一个子程序
如果都可以运行
再调用2次
方便,还不容易出错,一目了然
回复 顶

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|cpubbs论坛. ( 粤ICP备09171248号 )

GMT+8, 2026-10-1 05:42 , Processed in 0.039875 second(s), 11 queries , Gzip On, File On.

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表