串口可以说是我们最容易见到,也最容易接触到的一种总线,台式机上一般都有二个,而现在很多下位机、仪器等很多都还是使用串口通信的。

1,串口扩展的问题

先说一下串口的扩展问题,一般的台式机或工控机上都至少有二个串口,一般都是够用的,但是现在市场上已经很难找到带串口的笔记本了,而有时候在外出调试时需要在笔记本中使用到串口的,这时一般是使用USB-RS232的转接线,价格从十几到一百多都有,很多朋友反应在使用价格低的转接线时会出现乱七八糟的问题,而贵一点的线就很少听说有其它问题的,所以大家在使用便宜的USB-RS232转接线时要特别注意线的质量,遇到一些奇怪的问题时先考虑换一根好一点的线。PCI-RS232扩展卡也同理,便宜的卡也容易出问题,尽量买好一点的,以免因小失大。PCI-RS232一般至少能扩展2个串口,有些BT一点的可以扩展到8-16个,一堆线和接头。转接线和扩展卡一般是要装驱动的。

2,串口功能的确认

在使用串口之前,最好先确认一下串口是否正常,特别是使用转换接或扩展卡的。检查的方法很简单,就是将串口的2、3脚短接起来,脚是发送数据,2脚接收数据,就是这个串口自发自收。电脑上的串口软件一般是用串口调试助手,很出名的,也好用。

3,串口线的检查

检查好串口后,一般也要注意一下使用的串口线,标准的串口线是9根线都是用上的,但有一些是只使用了三根线的:2、3、5。第3个脚管是发送,第2个管脚接收,另一个5是地线,这里叫它简化的串口线,简化的串口线能用上的地方,标准的串口线也肯定能用上,因为标准线的9根线已经包括了简化串口线中的3根线,但标准串口线能用上的地方,简化串口线就不一定能用上,所以在使用串口线之间一定要确定好串口线的类型,一般买的串口线都是标准线,但自制的串口线因为应用场合不同就要先确定一下。串口线还有一个地方需要注意一下的,就是2、3脚的接法,标准接法中是2、3脚交叉的,即这边的2接另一边的3,这边的3接另一边的2,扭了一下,所以叫交叉线,因为正常使用时,这边第二脚是发送数据,另一边第三脚是接收数据,所以要将这二个管脚连接起来,这样才能正常使用。但是有些情况下,2、3是直连的,即这边的第2脚连接另一边的第2脚,第3脚连接第3脚,这种叫直连线,这种线一般是用于延长串口的,比如需要将工控机的串口接头引到机柜表面上时,就使用这种线,这样机柜表面的串口线的定义还是跟电脑接出来的一样,外面的那一根串口线再使用交叉线。从电脑主板上将串口引到主机后面板上的线就是这样的直连线。购买串口线的时候一般也会问你买直连的还是交叉的,要区别对待。串口线还有一个要稍微注意一下的就是DB头,因为电脑上接出来的一般是公头(针),要跟电脑接的话要母头(孔),一般仪器的串口也是公头,所以二边都是母头的串口线比较常见。串口的接头一般是DB9的,也有DB25的,但比较少用,有些比较BT的仪器厂家居然用RJ11(水晶头那种)作为串口头,让人不爽总之,使用串口前一定要先确定好硬件没问题,不然很浪费时间的。

4,串口参数设置

在LabVIEW中使用串口时,有几个参数比较重要,需要先说明一下的。一个是串口初始化这个节点的“终止符”和“禁用终止符?”这二个输入端,这二个输入端是相互作用的,“终止符”默认值为10,它的十六进制是“0x0A”,这是一个ASCII码,是一个换行符,可以从LabVIEW中的字符串的不同显示形式看出来,如下图:

图2.串口消息终止非符

左边是字符串的正常显示,中间是十六进制显示,右边是“代码显示”,这三个字符串的值都是一样的。终止符是10,表示在接收数据时,遇到ASCII码为10的字符(即换行符)时就停止接收数据,后面会有例子进行说明。而“禁用终止符?”的默认值是FALSE,即启用终止符,启用终止符会有什么效果呢?终止符的意思就是当程序接收到这个字符时,就认为已经到了所有数据的未端了,从而停止接收,不管后面还有没有数据。终止符是10,表示在接收数据时,遇到ASCII码为10的字符(即换行符)时就停止接收数据。

可以做一个很简单的试验,先短接串口2、3脚,然后将终止符设置为“0x33”,0x33是字符“3”的ASCII码,然后发送字符串“123456”,可以看到接收回来的数据中只有“12”,即“3”被认为是字符串的未端了,它后面的数据就不再接收了。很多朋友就是因为!这里设置错误,导致接收数据时有时候只收到一半就没有了,特别是在连续接收数据时,但又不是每次都只能收到一半,有时候也能接收齐全的,就是因为发送的数据中可能包含了终止符而使串口认为到了最后一个字符了。一般是将这个终止符禁用掉,即将“禁用终止符?”这一端输入为TRUE即可。另外还有一个比较重要的设置,就是VISA READ的“读取字节数”这个输入,由于在串口通信中,如果指定读取100个串口缓冲区的字节数,如果当前缓冲区的数据量不足100个时,程序会一直停在VISA READ这个节点上,如果在超时的时间(默认是10秒)内还没有凑足/100个数据的话,程序就会报“Time out”的错误,如果超时时间设置得太长,有可能导致程序很长时间停止在VISA READ这个节点上。解决的办法是使用“Bytes at Port”这个串口的属性节点,在VISA>>Serial>>advance下,也可以在VISA资源线上右键>>创建>>属性节点>>串口设置>>Bytes at Port,如下图:

这个属性节点读取当前串口缓冲区有字节数,然后将它的输出连接到VISA READ的“读取字节数”这个输入端上即可,这样当前缓冲区中有多少个字节就读回多少个,不会有任何等待。

5,在LabVIEW中使用串口

目前串口的应用一般有二种类型的(以我接触到的来分类,不严格),一种是仪器控制类型的,一般是上位机发送一个指令,然后下位机作出响应,返回数据给上位机,上位机再读取出来,完成一次通信,即一问一答;另一类是被动接收形的,即下位机会一直发送数据上来。这二种类型的串口通信在处理上会不太一样。

图4.DC-DC Buck 电路

图5. Irms 值的参考是在交流纹波比较小和磁芯损耗忽略的状况下

磁芯材料和相应的参数

扫码进入LabVIEW专属技术交流群

获取更多学习资料

相关课程推荐:

《龙哥手把手教你学LabVIEW视觉设计》https://mp.weixin.qq.com/s/IVvrzHu9rwoEfBA7IKXbAg

#串口通信超时处理_【学院推荐】划重点!LabVIEW中串口参数需注意的几点相关推荐

  1. 树莓派4bpython串口通信解读数据_树莓派基础实验36:通用串口通信实验

    一.介绍 对于树莓派 3B+来说,他的UART功能有三种: 1.内部蓝牙使用: 2.控制终端使用: 3.与其他设备进行串口通信. 在树莓派基础实验35:USB TO TTL模块实验中学习了通过串口对树 ...

  2. #串口通信超时处理_简单通信协议

    用C语言做物联网网关开发时,经常需要通过串口.485接口等从一些传感器读取数据,由于网关设备和传感器所处的环境复杂多样,电磁干扰等常常会破坏传输的数据,为了确保传输数据的可靠性,通常会采取一些策略,常 ...

  3. #串口通信超时处理_实现4G无线通信透传的远程通信多组网5个PLC相互交换数据...

    HC-4GA-PTP模块使用说明书 HC-4GA-PTP模块一款485接口+4G无线通信透传的远程通信模块,可以实现最多组网5个147-PTP模块 + 485接口设备间的广域通信互联,达到的效果好比将 ...

  4. 单片机串口通信学号显示_触摸屏与单片机串口通信测试

    工业现场在使用触摸屏的时候,与第三方控制器进行通信连接的时候,一般都是使用成熟的通信协议进行通信连接.而这些协议的实现过程,触摸屏厂商也已经在编程环境中进行了封装集成,对于使用的工程师来说,通信的数据 ...

  5. 串口通信 校验码_一文读懂S7-200 SMART自由口通信!

    学习S7-200 SMART时了解到,基于RS485接口可实现一下几种通信: 1)modbus RTU通信 2)PPI协议通信 3)USS协议通信 4)自由口通信 何为自由口通信呢? 前三种通信必须要 ...

  6. putty串口打开没反应_如何使用树莓派快速搭建一个串口数据记录器?

    在最近发现同事的某些项目临时增加了一些需求,把测出的能见度数据保存在存储介质中,并且可以随时远程查阅.如果在项目时间与成本允许的情况下,我们会选择在PCB中增加SD卡槽以及以太网接口,用于存储数据和联 ...

  7. python电脑编程求圆的面积案例_学Python划重点七 网络编程(UPD Socket编程、上传文件实例、计算圆的面积实例)...

    一.UPD Socket 编程 socket 对象中与UDP Socket 服务器编程有关的方法是bind() ,注意不需要listen() 和accept() , 这是因为UDP 通信不需要像TCP ...

  8. 达内终端端mysql命令_达内推荐:在PHP中使用命令行工具(一)

    如果您使用过 PHP,您就会发现它是创建特性丰富的 Web 页面的出色工具.作为一大脚本语言,PHP:容易学习吗. 有许多强大的框架(比如 CakePHP 和 CodeIgniter),让您能够像 R ...

  9. idea python工程zip打包_【面试划重点】-- Python常见知识点

    分享工作中遇到的python知识点,估计很多人没太留意过这个知识点,但是对巩固很多基本语法和一些python中一些有用的方法很有帮助,工作中的问题我简化说下,大概就是下面需求: 有3个python列表 ...

最新文章

  1. grafana绘制动态dashboard
  2. 安装 archlinux 之使用 EFI/GPT
  3. java不支持发行版本12_主要发行版本后Java开发人员应使用的15种工具
  4. svn服务器如何扫描文件,基于文件仓库进行建模协作(EA+SVN)
  5. 非常适合初学者的机器学习的数学基础笔记.pdf
  6. 循环数组最大字段和(51Nod-1050)
  7. 利用ASP.NET MVC源代码调试你的应用程序
  8. http 二进制_图解 HTTP 的前世今生!
  9. PCIE万兆网卡-华硕XG-C100C
  10. 企业信息化管理软件,如何走出开发困境
  11. 252个基本词根详解
  12. Linux文件误删除恢复操作
  13. 大数据分析师高级证书_有大数据分析师资格证书吗?
  14. 那些年的 Hello World (HTML)
  15. python 给文件加密
  16. 基于Android的文本语音朗读器的设计与实现(有声小说APP)
  17. 信创产业现状、分析与预测
  18. 1.1.2 Java的应用领域
  19. C语言sopc蜂鸣器按键弹奏中音,SOPC乐曲演奏大作业.doc
  20. 华为手表新款watch gt3_【新品】华为全场景新品发布会正式举行:发布多款产品...

热门文章

  1. nacos 公共_Springboot,Nacos并向使用研究
  2. python调用其他文件的类和函数
  3. Python基础教程:list相关操作
  4. python教程:类的装饰器方法、特殊成员方法
  5. Python 的6个日期时间库
  6. php里怎么添加计时器,如何使用php显示计时器?
  7. msvc MinGW gcc g++关系
  8. armel、armhf、arm64、armv7l 系统架构区别与联系(AArch64)
  9. 为什么 scanf( )(scanf_s)函数老要输入两次才行?
  10. python如何获取鼠标点击图片的像素点坐标