VB的MSCOMM控件做单片机和PC机的通讯时遇到一个问题:PC机发送的数据大于15时,单片机接收到的数据就会出

来源:百度知道 编辑:UC知道 时间:2024/09/22 11:27:41
我用VB的MSCOMM控件做单片机和PC机的通讯时遇到这样的一个问题:PC机发送的数据大于15时,单片机接收到的数据就会出错,不知道为什么会这样,希望好心人帮忙看看。谢谢了
PC机代码:
Private Sub Command1_Click()
Dim b As Integer
b = Val(Text1.Text)
If MSComm1.PortOpen = False Then
MSComm1.PortOpen = True '打开串口
End If

MSComm1.OutBufferCount = 0
MSComm1.Output = Chr(CInt(b))
Text2.Text = ""
End Sub

Private Sub Command2_Click()
MSComm1.PortOpen = False
Unload Me

End Sub

Private Sub Form_Load()

MSComm1.CommPort = 1
MSComm1.InBufferSize = 40
MSComm1.InBufferCount = 0
MSComm1.InputMode = comInputModeBinary
MSComm1.Settings = "9600,n,8,1"
MSComm1.RThreshold = 1
MSComm1.InputLen = 0
If MSComm1.PortOpen = False Then
MSComm1.PortOpen = True '
End If
End Sub
51单片机代码:
shumaguan_dataport data p0 ;数码管数据口
shumaguan_bit1 bit p

。。。。。。。。。
PC机发送的是字节,以16进制发送的字节
首先你发送的字符没有经过转换,应该是&H0A形式的,这样才会判断出是16进制的字节
当然,16进制取值范围就是0-15,大于15.。。。。。这个字节已经溢出了