我现在在做一个程序,用于计算机和另一台设备的串口通信,现在我的计算机已经可以写数据到那台设备上,可是在读数据时却从串口缓冲区读不到任何数据,以下是我读数据的模块,请大家看看有没有什么问题?
Private Sub cmdRead_Click()
Dim strCmdUp As StringMSComm1.InputLen = 0
MSComm1.RThreshold = 0
MSComm1.CommPort = 1
MSComm1.InputMode = comInputModeTextMSComm1.PortOpen = True
strCmdUp = MSComm1.Input
frmTest.MSComm1.PortOpen = False
Text1.Text = strCmdUp
End Sub
由于现在计算机和那台设备无法联调,所以我现在也不好确定问题到底在哪边,如果我的程序没有问题,是否可以确定是对方的数据根本没有发送出来,或者还有其它的原因?请各位大虾帮忙分析分析!小弟在此先谢过啦!
Private Sub cmdRead_Click()
Dim strCmdUp As StringMSComm1.InputLen = 0
MSComm1.RThreshold = 0
MSComm1.CommPort = 1
MSComm1.InputMode = comInputModeTextMSComm1.PortOpen = True
strCmdUp = MSComm1.Input
frmTest.MSComm1.PortOpen = False
Text1.Text = strCmdUp
End Sub
由于现在计算机和那台设备无法联调,所以我现在也不好确定问题到底在哪边,如果我的程序没有问题,是否可以确定是对方的数据根本没有发送出来,或者还有其它的原因?请各位大虾帮忙分析分析!小弟在此先谢过啦!
MSComm1.InputLen = 0
MSComm1.RThreshold = 0
MSComm1.CommPort = 1
MSComm1.InputMode = comInputModeText
MSComm1.PortOpen = True
End Sub
Private Sub cmdRead_Click()
Dim strCmdUp As String
strCmdUp = MSComm1.Input
frmTest.MSComm1.PortOpen = False'这一句不知道用途
Text1.Text = strCmdUp
End Sub
Dim strCmdUp As StringMSComm1.InputLen = 0
MSComm1.RThreshold = 0
MSComm1.CommPort = 1
MSComm1.InputMode = comInputModeTextdim lDataLen As LongMSComm1.PortOpen = True
lDataLen = MSComm1.InBufferCount '看看数据接收缓冲区的字符数
strCmdUp = MSComm1.Input
frmTest.MSComm1.PortOpen = False
Text1.Text = strCmdUp
End Sub
可是现在我还是想不通我的程序到底哪儿出了问题,不管我用什么方法调试,接收缓冲区中总是空空如也,包括使用kmcyz(阿成)建议的两种调试方法 。请大家再帮我分析分析。
Private Sub MSComm1_OnComm()
Dim strCmdUp() As ByteMSComm1.InputLen = 0
MSComm1.RThreshold = 0
MSComm1.CommPort = 1
MSComm1.InputMode = comInputModeBinaryMSComm1.PortOpen = True
strCmdUp = MSComm1.Input
'frmTest.MSComm1.PortOpen = False
Text1.Text = strCmdUp
End Sub
mscomm1.portopen=true
'Code used to write data
mscomm1.portopen=flase '此句执行后,串口缓冲区中的所有数据都会清空,所以在下面的读数据的过程中,是读不出来任何数据的。
...
mscomm1.portopen=true
'Code used to read data
mscomm1.portopen=false程序修改如下:
mscomm1.portopen=true
'code used to write data
'code used to read data
mscomm1.portopen=false