你可以等全部获取后 用mid函数去截取字符串 再赋值
创新互联公司服务项目包括耿马网站建设、耿马网站制作、耿马网页制作以及耿马网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,耿马网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到耿马省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
dim a()
redim a(len(s)\4))
for i = 1 to len(s) step 4
a(j)=mid(s,i,4)
j=j+1
next
0x3F表示字符"?"
估计是你的发送指令不正确,设备返回你发送的指令后面加''?""
你定义的委托需要带参数才行,DataReceived事件中没有接收数据代码,下面的代码经测试可用
Delegate Sub SetTextCallback(ByVal InputString As String)
Private Sub ShowString(ByVal comData As String)
txt_Rect.Text += comData '将收到的数据入接收文字框中
txt_Rect.SelectionStart = txt_Rect.Text.Length
txt_Rect.ScrollToCaret()
End Sub
Private Sub SerialPort1_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
Dim inData As String = SerialPort1.ReadExisting
Dim d As New SetTextCallback(AddressOf ShowString)
BeginInvoke(d, inData)
End Sub
上面的代码看不出问题,如果初始化串口控件时已经注册了AxMSComm1_OnComm,有数据接收应该能触发,至于为什么没有触发,要看看你的接收方是否已经收到你的发出指令,是否已经有响应数据回发。
建议分开调试,用一个通用的串口助手,如格西烽火串口助手之类的,分别调试你的上位机和下位机。格西烽火串口助手能轻松的定制如你上面的发送数据。