VB MScomm_oncomm 没办法触发

来源:百度知道 编辑:UC知道 时间:2024/09/26 14:18:26
Dim outbyte() As Byte '输出数据
Dim inbyte() As Byte '输入数据
Private Sub Form_Load() '工程载入函数
'初始始化
MSComm1.CommPort = 1 '...使用comm1口
MSComm1.Settings = "9600,n,8,1"
If False = MSComm1.PortOpen Then '打开串口
MSComm1.PortOpen = True '打开串口
End If
End Sub
Private Sub Command1_Click()
'...发送数据
Dim datan(0) As Byte
Dim number As Integer
If Text1.Text >= 0 & Text1.Text < 256 Then
number = Val(Text1.Text)
datan(0) = number
MSComm1.OutBufferCount = 0 '...清空输出寄存器
MSComm1.Output = datan '送出数据
'Text2.Text = datan(0)
End If
End Sub
Private Sub MSComm1_OnComm()
Select Case MSComm1.CommEvent
' Handle each event or error by placing
' code below each case statement
' 错误
Case comEventBreak


inbyte(0) = MSComm1.Input
Text2.Text = inbyte
改成
inbyte = MSComm1.Input
Text2.Text = inbyte(0) (不一定是0,你要显示哪一位就写几)
试试..

(我对VB的格式不熟悉,不过看起来多半是这个问题)

你在接受input之前要加一个延时函数,
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) '声明sleep函数
DoEvents
Sleep 800 '0.8秒来读mscomm1.input
这样让数据能完全进入缓冲后再读,否则会读不到信息。