(1) 搜索本机可用串口
本软件要求实现自动搜索本机可用串口,为实现这一功能,我设置了一个Button在界面上,单击此按钮程序便会自动实现搜索可用串口的功能。在此,调用了一个通用过程GetSerialPortName(),通用过程里面用到了If...Else...End If语句。当主机上没有可用串口时,界面便会弹出对话框"There have no available serialport in this computer!"。当主机上有可用串口时,便使用For...Next有限循环语句,遍历主机上的每一个端口,然后再用一个If...Then...End If语句,调用SearchPort函数,这是一个布尔型函数,如果SearchPort(com)=Ture,那么便把com赋值给字符串变量ComName。即此串口即为本机可用串口。
相关代码如下:
For Each com As String In My.Computer.Ports.SerialPortNames
If (SearchPort(com) = True) Then
ComName = com
Exit Sub
End If
Next
在SearchPort函数里面用到了Try...Catch语句。在Try语句里,用SerialPort1.Open()方法打开一个串口连接。并使用了Threading.Thread.Sleep(500)延时函数。定义了一个字符串Version,并调用了ReadExisting方法,将读取SerialPort对象的流和输入缓冲区中所有立即可用的字节赋值给这个字符串Version。然后运用If...Else...End If语句,调用InStr函数,查找字符串"JB5000",Version是JB5000开始的位置,若找到字符串"JB5000",即返回找到字符的首位置,否则返回0。即若找到字符串"JB5000",则布尔型函数SearchPort的参数返回值是Ture。即找到了可用串口。
相关代码如下:
SerialPort1.Open()
Threading.Thread.Sleep(500)
Dim Version As String = ""
Version = SerialPort1.ReadExisting()
If InStr(Version, "JB5000") > 0 Then
SerialPortStatus = True
Return True
Else
SerialPort1.Close()
Return False
End If
(2) 使用 SerialPort 设置串口属性
进行串口通讯时,需要设置一些相关参数,可以通过设置SerialPort 类的属性来进行。串口属性主要包括:
PortName 串口名称,COM1, COM2等。
BaudRate 波特率,也就是串口通讯的速度,进行串口通讯的双方其波特率需要相同,如果用PC连接其他非PC系统,一般地,波特率由非PC系统决定。
Parity 奇偶校验。可以选取枚举Parity中的值。
DataBits 数据位。
StopBits 停止位,可以选取枚举StopBits中的值。
Handshake 握手方式,也就是数据流控制方式,可以选取枚举Handshake中的值。
串口初始化的代码如下:
With SerialPort1
.PortName = com
.BaudRate = 9600
.Parity = IO.Ports.Parity.None '奇偶校验
.DataBits = 8 '数据位
.StopBits = IO.Ports.StopBits.One '停止位
.Encoding = System.Text.Encoding.ASCII
End With
- 上一篇:双谱图像配准技术研究+powell算法
- 下一篇:基于DSP的雷达恒虚警检测技术研究
-
-
-
-
-
-
-
现代简约美式风格在室内家装中的运用
浅析中国古代宗法制度
中国传统元素在游戏角色...
江苏省某高中学生体质现状的调查研究
高警觉工作人群的元情绪...
上市公司股权结构对经营绩效的影响研究
g-C3N4光催化剂的制备和光催化性能研究
C++最短路径算法研究和程序设计
NFC协议物理层的软件实现+文献综述
巴金《激流三部曲》高觉新的悲剧命运