buffer = buffer + Hex(Inbyte(i)) + Chr(32) , 这个chr(32)就是个空格。
当Hex(Inbyte(i)) 为 0-F时,buffer前两字节是 数加空格。
Len(Trim(Mid(buffer, 1, 2))) = 1 这个条件,trim是去掉空格。所以是判断是否是0-F
其实不用这么麻烦。
datatemp(num)= clng(inbyte(2)) 256 + inbyte(1) 即可。
1)删除定时器事件部分的所有程序。
2)如果使用mscomm一次接收一组数据(即用数组),那么要用循环按数组元素来画线。
3)如果使用mscomm一次接收一个数据,那么每次触发oncomm就调用画线过程来画线。
4)查检你oncomm事件里MSCommInput返回的数据是否正确,使用二进制接收时,每个数据都是字节数据,因此每个数组元素值不会大于255,利用mscomm发送大于255的数需要组织协议,收到数据后进行数据解析,再用解析的数据画线。
任何利用串口进行收发的程序,都可以利用将单个RS232口自身2与3脚短接,实现自发自收进行代码调试。
新建VB工程,由工程菜单选部件项,在Microsoft Comm Control 60部件前打钩确定,VB的工具箱中就有MSCOMM控件,添加到窗体
Private Sub cmdSend_Click()
Dim strSend As String
strSend = Text2
MSComm1Output = strSend
End Sub
Private Sub Form_Load()
MSComm1Settings = "9600,n,8,1"
MSComm1InputMode = comInputModeText '采用文本接收
MSComm1InBufferCount = 0 '清空接受缓冲区
MSComm1OutBufferCount = 0 '清空传输缓冲区
MSComm1RThreshold = 1 '产生MSComm事件
MSComm1PortOpen = True
Text1 = ""
End Sub
Private Sub MSComm1_OnComm() '接收数据
Dim strBuff As String
Select Case MSComm1CommEvent
Case 2
strBuff = MSComm1Input
Text1 = Text1 & strBuff
End Select
End Sub
以上就是关于vb串口接收16位数据,有个例子程序看不明白。全部的内容,包括:vb串口接收16位数据,有个例子程序看不明白。、通过vb6.0绘制串口过来的数据的实时曲线,下边是一个例子、用vb的串口编程实现一个串口的自发和自收功能等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)