十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
不会吧!可能有些东西需要你打开。
成都创新互联公司专业为企业提供固安网站建设、固安做网站、固安网站设计、固安网站制作等企业网站建设、网页设计与制作、固安企业网站模板建站服务,十多年固安做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
例如: dtE 等,还有是不是 需要厂家的 API 或 SDK 啊
参数等。
要不就是打开方式不一样,例如使用文件方式打开 。
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
不知道你是不是用51单片机往串口发数据,是的话那是因为51的sbuf最多存放8个字节,所以你发12个字节会分成两次发完。还有在接收的时候最好定义好通信协议,比如加一个侦头,一个侦尾,通过这两个字节的内容来接收数据。
老兄,提问还是给点悬赏分嘛,不要吝啬哪点分,知识是无价的,你给得越多,回答你的人才会越多。
关于串口通讯的问题:
很明显,你还不知道(不会、不习惯)使用事件驱动的方式接收数据。
建议你仔细看看串口组件(无论VB6还是VB.net)的OnComm事件,你的问题很容易解决。
关于以太网通讯:
在TCP通讯中端口确实可以重用,你百度一下“TCP端口重用”能查到很多示例。
但绝大多数情况下不推荐端口重用,而应该采取服务器端建立连接池的方法。
或者,干脆不用TCP,用UDP解决也可以。
你可以这样操作:
Form1.BeginInvoke(Sub()
'一些操作
End Sub)
这样主线程就会放下手里的事情并执行Sub里的操作了
n = SerialPort1.BytesToRead '读取字节数 If n 0 Then '若字节数大于0.则执行以下操作
ReDim rc(n) '重新定义rc的长度,(之前有定义过)
strrc = 0 '变量类型为字符串(string),一开始使它为0
For i = 1 To n
rc(i) = SerialPort1.ReadByte ‘读取数据
strrc += CStr(Hex(rc(i))) '这里Hex 函数 返回表示数的十六进制值的字符串
'CStr 函数 返回已被转换为字符串子类型的变体的表达式。
Next
TextBox1.Text = strrc '将strrc的值付给TextBox1.Text即可
End If