
怎么自动检测可用串口号
j = 0 For i = 1 To 16 Step 1 If comISP.PortOpen = True Then '先关闭串口 comISP.PortOpen = False End If comISP.CommPort = i On Error Resume Next '说明当一个运行时错误发生时,控件转到紧接着发生错误的语句之后的语句,并在此继续运行。
访问对象时要使用这种形式而不使用 On Error GoTo。
comISP.PortOpen = True If Err.Number <> 8002 Then '无效的串口号。
这样可以检测到虚拟串口,如果用Err.Number = 0的话检测不到虚拟串口 If j = 0 Then j = i End If cboPort.AddItem COM & i '生成串口选择列表 End If comISP.PortOpen = False Next i If j >= 1 Then cboPort.Text = COM & j '自动打开可用的最小串口号 comISP.CommPort = j comISP.PortOpen = True cmdOpenCom.Caption = 关闭串口 shpCOM.FillColor = vbGreen If Err.Number = 8005 Then '串口已打开,vbExclamation ' comISP.PortOpen = False cboPort.Text = cmdOpenCom.Caption = 打开串口 shpCOM.FillColor = vbRed End If End If
怎样在vb中自动检测到可用串口号的具体程序代码
j = 0 For i = 1 To 16 Step 1 If comISP.PortOpen = True Then '先关闭串口 comISP.PortOpen = False End If comISP.CommPort = i On Error Resume Next '说明当一个运行时错误发生时,控件转到紧接着发生错误的语句之后的语句,并在此继续运行。
访问对象时要使用这种形式而不使用 On Error GoTo。
comISP.PortOpen = True If Err.Number <> 8002 Then '无效的串口号。
这样可以检测到虚拟串口,如果用Err.Number = 0的话检测不到虚拟串口 If j = 0 Then j = i End If cboPort.AddItem COM & i '生成串口选择列表 End If comISP.PortOpen = False Next i If j >= 1 Then cboPort.Text = COM & j '自动打开可用的最小串口号 comISP.CommPort = j comISP.PortOpen = True cmdOpenCom.Caption = 关闭串口 shpCOM.FillColor = vbGreen If Err.Number = 8005 Then '串口已打开,vbExclamation ' comISP.PortOpen = False cboPort.Text = cmdOpenCom.Caption = 打开串口 shpCOM.FillColor = vbRed End If End If
如何实现串口号自动识别
有多种方法,但是都需要有一个软件,有的厂家已经有这样的软件了,你直接安装使用就可以了。
如果没有这样的软件你就需要自己写个小的软件实现这个功能了。
你可以向厂家要仪器的命令集和编程示例,尝试写一下,建议使用LV编程语言
怎样在vb中自动检测到可用串口号的具体程序代码
j = 0 For i = 1 To 16 Step 1 If comISP.PortOpen = True Then '先关口 comISP.PortOpen = False End If comISP.CommPort = i On Error Resume Next '说一个运行时错误发生时,控件转到紧接生错误的语句之后的语句,并在此继续运行。
访问对象时要使用这种形式而不使用 On Error GoTo。
comISP.PortOpen = True If Err.Number <> 8002 Then '无效的串口号。
这样可以检测到虚拟串口,如果用Err.Number = 0的话检测不到虚拟串口 If j = 0 Then j = i End If cboPort.AddItem COM & i '生成串口选择列表 End If comISP.PortOpen = False Next i If j >= 1 Then cboPort.Text = COM & j '自动打开可用的最小串口号 comISP.CommPort = j comISP.PortOpen = True cmdOpenCom.Caption = 关闭串口 shpCOM.FillColor = vbGreen If Err.Number = 8005 Then '串口已打开,vbExclamation ' comISP.PortOpen = False cboPort.Text = cmdOpenCom.Caption = 打开串口 shpCOM.FillColor = vbRed End If End If
windows 应用程序 中的DataReceived事件怎么写啊我想获取串口的数据,接收数据那块不会写。
。
。
谢
以下是一段 我自己用的接收处理代码其中的sp是已经声明好的SERIPORT。
sp.DataReceived += new SerialDataReceivedEventHandler(sp_DataReceived);\\\/\\\/接收串口数据字符串 string watcher = null,send=null; \\\/\\\/串口数据接收事件 void sp_DataReceived(object sender, SerialDataReceivedEventArgs e) { watcher += sp.ReadExisting();\\\/\\\/这句就是接收内容代码,如果只需要接收后面就都不需要了。
{ if (watcher.Length % 8 == 0) { send = watcher; switch (watcher) { case I(001,1): \\\/\\\/dt1.Tag = 0; if(dt1.Tag==0) { sign = d_*_auto; dt1.IsEnabled = true; dt_streamwrite.IsEnabled = true; } \\\/\\\/sign = d_*_auto; \\\/\\\/dt1.IsEnabled = true; break; case I(001,0): sign = d_*_auto; sp.WriteLine(O(01,000,0)); dt_streamwrite.IsEnabled = true; dt1.IsEnabled = false; break; case I(002,1): \\\/\\\/dt2.Tag = 0; if (dt2.Tag == 0) { sign = d_*_auto; dt2.IsEnabled = true; dt_streamwrite.IsEnabled = true; } break; case I(002,0): sign = d_*_auto; sp.WriteLine(O(02,000,0)); dt2.IsEnabled = false; dt_streamwrite.IsEnabled = true; break; case I(003,1): \\\/\\\/dt3.Tag = 0; if (dt3.Tag == 0) { sign = d_*_auto; dt3.IsEnabled = true; dt_streamwrite.IsEnabled = true; } break; case I(003,0): sign = d_*_auto; sp.WriteLine(O(03,000,0)); dt3.IsEnabled = false; dt_streamwrite.IsEnabled = true; break; case I(004,1): \\\/\\\/dt4.Tag = 0; if (dt4.Tag == 0) { sign = d_*_auto; dt4.IsEnabled = true; dt_streamwrite.IsEnabled = true; } break; case I(004,0): sign = d_*_auto; sp.WriteLine(O(04,000,0)); dt4.IsEnabled = false; dt_streamwrite.IsEnabled = true; break; case I(005,1): \\\/\\\/dt5.Tag = 0; if (dt5.Tag == 0) { sign = d_*_auto; dt5.IsEnabled = true; dt_streamwrite.IsEnabled = true; } break; case I(005,0): sign = d_*_auto; sp.WriteLine(O(05,000,0)); dt5.IsEnabled = false; dt_streamwrite.IsEnabled = true; break; case I(006,1): sign = d_*_auto; dt1.Tag = 1; dt1.IsEnabled = false; dt_streamwrite.IsEnabled = true; break; case I(006,0): sign = d_*_auto; dt1.Tag = 0; dt_streamwrite.IsEnabled = true; break; case I(007,1): sign = d_*_auto; dt2.IsEnabled = false; dt_streamwrite.IsEnabled = true; dt2.Tag = 1; break; case I(007,0): sign = d_*_auto; dt2.Tag = 0; dt_streamwrite.IsEnabled = true; break; case I(008,1): sign = d_*_auto; dt3.IsEnabled = false; dt_streamwrite.IsEnabled = true; dt3.Tag = 1; break; case I(008,0): sign = d_*_auto; dt3.Tag = 0; dt_streamwrite.IsEnabled = true; break; case I(009,1): sign = d_*_auto; ; dt_streamwrite.IsEnabled = true; dt4.IsEnabled = false; dt4.Tag = 1; break; case I(009,0): sign = d_*_auto; dt4.Tag = 0; dt_streamwrite.IsEnabled = true; break; case I(010,1): sign = d_*_auto; dt5.IsEnabled = false; dt_streamwrite.IsEnabled = true; dt5.Tag = 1; break; case I(010,0): sign = d_*_auto; dt5.Tag = 0; dt_streamwrite.IsEnabled = true; break; } watcher = null; } } }
配置串口服务器时,是否需要选择允许自动获得ip地址?
动态域名方式:选择所需要配置的串口,进入“配置串口”,如果需要“动态域名服务”,将“选择获取远程主机IP方式:”设置为“2-通过域名解析获得远程主机IP地址”,



