Labview如何判断RS232发送缓冲区中的数据已经发送完毕?

2019-07-17 18:16发布

如题,在labview 串口通讯中,write.vi返回成功并不代表数据已经发送完毕(write.vi 返回成功只是说明把数据写到数据缓冲区了,但没有真正发送完毕),有没有办法可以知道发送缓冲区中的数据已经发送完毕了?谢谢了!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
19条回答
fantek
2019-07-18 14:57
本帖最后由 fantek 于 2013-12-31 15:03 编辑
utdhome 发表于 2013-12-30 12:14
各位大侠,有人可以帮忙再看看是什么原因吗?有什么办法解决这问题? ...

1.串口硬件流控握手过程
   串口输出信号共有Txd,DTR,RTS, 下面资料中的图3是硬件握手示意图。
Understanding Power Requirements in RS-232 Applications.pdf (325.53 KB, 下载次数: 78) 从图3中可以看出RTS的不同电平状态,代表串口处于接收或发送的过程,文中也有说明。也就是说用RTS线作为与下位机收发控件线比较合式。
   1.1.RTS-CTS流控接线方式
    串口硬件流控 RTS-CTS.png
   1.2.DTR-DSR DCD流控接线方式
    串口硬件流控 DTR-DSR DCD.png
    1.3.串口回环模式接线方式
    串口引脚接线 Loopback Mode.png
2.通过RTS线作为收发控制的串口通信实验
  2.1上位机串口的接线方式
  (1)RTS与CTS短接,同时RTS接到下位机。
  (2)DTR-与DSR,DCD短接,同时DTR接到下位机。
   问题是目前上位机如何通过RS485与下位机连接的,也就是DTR如何和下位机接线的。Txd和Rxd通过RS232到RS485转换器以半双式方式与下位机连接,那么DTR是用另一个转换器与下位机连接吗?
    调试时,(1)和(2)可以同时或分别连接。
   2.2上位机软件串口配置及程序设计
    (1)串口配置为RTS/CTS硬件流控模式, 异步或同步读写收发。发送不同长度的字符串(0x55),用示波器观察RTS与Txd的同步关系,如果有滞后长度是否是固定的还是变化的。
    (2)串口配置为DTR/DSR硬件流控模式,异步或同步读写收发。发送不同长度的字符串(0x55),用示波器观察DTR与Txd的同步关系,如果有滞后长度是否是固定的还是变化的。
    (3)程序中需要置位或复位RTS、DTR状态。如果RTS、DTR与Txd的同步滞后时间几乎是固定的,这个时间可以用示波器测量出来。在写入串口之后和DTR-RTS置高之前在程序中加入延时,不断调整,达到完全同步状态。

这种用法比较新颖,实验比较繁琐,希望楼主成功!





一周热门 更多>