如题,在labview 串口通讯中,write.vi返回成功并不代表数据已经发送完毕(write.vi 返回成功只是说明把数据写到数据缓冲区了,但没有真正发送完毕),有没有办法可以知道发送缓冲区中的数据已经发送完毕?谢谢!
遇到这个问题的原因如下:

本来我此程序的目的是:我在写数据之前,把DTR的电平置低,在写完数据后,把DTR的电平置高,然后等待接收数据(我需要的是同步,即DTR=低电平时,在发送数据;当DTR=高电平时,在接收数据)。可问题出现了,当我在示波器上检测时,发现DTR的电平为高时,串口还一直在发数据(1线即黄色线是示波器的CH1,接RS232的第四脚DTR,2线即天蓝色线是示波器的CH2,接RS232 的第三脚Txd,它们的地都共接RS232的第五脚,共地),如下图所示:

而且也发现当DTR电平置低时,数据也不是马上发送,要稍为延迟点时间才发送。
PS:write.vi返回的数据长度是等于我要发送的数据长度(说明数据已成功把数据写到发送数据缓冲区了),我把write.vi与 read.vi的I/O都设为同步,结果也一样,如果在write.vi之前加点延时,结果也是一样。如果把数据流模式设为DTR/DSR,程序则会出错。
请各位帮忙看看这是什么原因呢,如何做到同步(在发送数据其间阶段,DTR要在低电位,而在接收数据阶段,DTR要在高电位),或是说,有什么办法知道发送缓冲区的数据已经发送完毕?无比感谢!