配置串口参数函数,需要配置的参数主要有VISA资源名称(串口号)/波特率/数据比特/奇偶校验/停止位等关键参数。
VISA写入函数,通讯所需要发送的字符串数据。
VISA读取函数,字节总数,从端口缓存区里面读取数据的长度,一般通过属性节点获取端口缓存区内容长度传入到该参数输入,反馈缓存区数据内容。
VISA关闭函数,释放串口资源。
你的串口只有一个com5,程序运行时两个进程在争抢一个硬件资源,一次只能有一个站点能通讯上。
建议使用for循环,将发送区的内容做成一个文本数组,作为for循环的索引,这样就不会引起冲突了。
你这个程序有两个问题,首先按下“写入”键后,这个数据就会以最快的速度向串口写入数据。而串口是个慢速设备,这个写法会丢失数据,且时间一长会缓冲溢出而导致崩溃。修正的方法是在写入这里加一个延时,比如200毫秒才写一次。
其次,这样的两个While循环不合理,比如关闭了第一个循环一定导致第二个循环报错。解决的办法是要么放到同一个循环里,要么两个循环用同一个结束开关控制
建议:
1在visa write 这个部分加个延时,有可能还没发送完成,就把VISA关闭了,
造成发送失败。
2检查和单片机的连接,是否存在连接松动。
3建议先给单片机通电,后才运行LabVIEW程序。
4检查单片机受到干扰造成。
5检查单片机的程序是否存在bug。
没有问题啊?我这样做过。完全可以收到。只需要满足下述条件:
电脑有两个(或以上)串口
两个串口使用交叉线连接(即COM1的二号脚接到COM2的三号脚,而COM1的三号脚接到COM2的二号脚)
LabVIEW和串口调试助手分别打开COM1和COM2。设置成一样的数据格式和波特率,关闭硬件和软件流控
即可实现串口收发
这个问题好解决。你肯定还没安装VISA驱动。
虽然LabVIEW里有相关的VISA函数,可以再程序框图里拖出来使用,但是底层的驱动还没安装,因此LabVIEW还不能跟串口进行通信,需要下载NI-VISA,具体版本得根据你的LabVIEW版本,在网上一搜就能搜到。
以上就是关于简述labview串口通信的基本流程,使用的主要模块,关键配置参数有哪些全部的内容,包括:简述labview串口通信的基本流程,使用的主要模块,关键配置参数有哪些、无法实现用LABVIEW串口通信程序与同一个串口上的两个站点通信,请大神看看错在哪儿了,谢谢!、labview串口通信循环等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)