mingyuexin1984 发表于 2009-9-25 10:18:42

怎样实现串口同时接收和发送?

如题,我现在要实现连续读取串口的同时可以随时写串口,搜索了一下论坛的帖子,但是没找到答案,我用的是VISA,是不是实现起来不太容易?
在线等……

炸弹熊 发表于 2009-9-25 11:27:18

我不会,我用了一种笨办法来实现

就是设定一个定时循环,这个循环周期是1秒一次,循环内做一次串口的写入与读出,写入与读出设定一定的时间间隔(比如500ms),写入的串口控件外面加一个条件,真执行,假不执行,需要写串口时置为真

我串口通信不太熟,不知道能否满足你的需要,大家有别的好办法请指教!

飞雨天 发表于 2009-9-25 13:39:41

串口本来就是全双工的,即是可以同时读写的~~放相应vi到循环里就可以了,例子应该有,打开find example,输入serial什么的,找找

飞雨天 发表于 2009-9-25 13:40:12

比如那个串口调试助手那样的,有个lv版本的串口调试助手,搜索下?

mingyuexin1984 发表于 2009-9-25 13:45:17

2# 炸弹熊

我见过的程序也都是这样的,一起等待高手解决吧,呵呵

mingyuexin1984 发表于 2009-9-25 13:49:22

4# 飞雨天

就是类似这样的程序吗?

mingyuexin1984 发表于 2009-9-25 13:51:02

4# 飞雨天

gu138 发表于 2009-9-27 11:34:51

请问你的那个子VI里怎么实现的十六进制数据发送的啊,我也是用的VISA写,但是VISA只认字符串输入,我想输入字符串自动转成十六进制数发送给机器,或者直接给VISA发送十六进制数据也行,怎么能实现啊,万分感谢!!!!!!!!!!

mingyuexin1984 发表于 2009-9-27 13:52:57

8# gu138

那个程序不是我写的,是从论坛上找到串口通信助手的例子,你可以搜一搜。另外,串口只对字符串进行操作,你想发送十六进制的数据的话,只需要右键—>十六进制显示就可以了,我也是新手,有问题一起探讨一下

gu138 发表于 2009-9-27 20:49:59

麻烦能说清楚些吗?在哪里右键可以选择十六进制显示?

gu138 发表于 2009-9-27 20:50:04

麻烦能说清楚些吗?在哪里右键可以选择十六进制显示?

july712 发表于 2009-9-28 09:41:42

在前面板上的字符串显示区域单击右键,选择16进制显示就可以了

july712 发表于 2009-9-28 09:41:45

在前面板上的字符串显示区域单击右键,选择16进制显示就可以了

gu138 发表于 2009-9-28 10:22:04

那只是把命令十六进制显示了,但并没有转化成十六进制整型字符串发送啊,版主的那个条件框中的子VI能否上传共享下可以吗?感激不尽!!!

飞雨天 发表于 2009-9-28 11:01:21

16进制显示之后,你输入的就是16进制了,就是所见即所得,所以,你能确保自己输入的是仪器手册中的控制命令。

至于楼主说的收发同时,就是你截的那个图,外面应该还有一个循环,这样就可以了

当然不可能是严格意义的同时,对于串口来说,严格意义同时也没任何的必要。
页: [1] 2
查看完整版本: 怎样实现串口同时接收和发送?