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

2019-07-17 18:16发布

如题,在labview 串口通讯中,write.vi返回成功并不代表数据已经发送完毕(write.vi 返回成功只是说明把数据写到数据缓冲区了,但没有真正发送完毕),有没有办法可以知道发送缓冲区中的数据已经发送完毕了?谢谢了!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
19条回答
utdhome
2019-07-17 23:34
fantek 发表于 2013-12-29 12:35
可参考VISA写入函数帮助中关于同步传输的描述:
依据不同的平台,数据传输可为同步或异步。右键单击节点, ...

    谢谢fantek的回复,我试过了在write.vi里选择I/O同步或异步,但好像没有什么效果似的,结果都一样。其实我要知道write.vi的数据缓冲区发完数据的时间点(或返回状态),是因为我现在有一个任务,就是要用RS232与下位机通讯,发数据时,我要把DTR脚位电平置低,然后,在发完数据后,我要把DTR脚位电平置高,等待接收下位机的回复(我需要的是同步,即DTR=低电平时,在发送数据,DTR=高电平时,在接收数据),现在的问题是,我用示波器观察,发现我把数据写完后(问题就在这里,写完数据不等于发完数据),也把DTR脚位电平置高了(置高原因是接下来我要去接收数据了),后发现,我把DTR脚电平置高时,串口还一直在发送数据,而且,发现在我把DTR脚电平置低时,会延时一两个ms串口才开始发送数据,也就是说,它们是不同步的。我不知道你是否明白我的描述。
    因此,我现在就想知道怎么样才能知道发送缓冲区发完数据了,这样,我就可以才把DTR的电平置高,这样也才不会出错,才会同步。

一周热门 更多>