werty12 发表于 2009-12-17 18:46:21

请教VB串口通信问题

我把串口的2,3口短接了,做一个自发送自接收的测试程序,程序如下
当我的按键只是发送一个1的时候在text1里是能显示1的,那就代表我发送成功并且也成功接收了
当我在发送1的后面加上括号里的语句时,text1里就不显示任何东西了,我测试了下发送是成功的,但就是不知道为什么不能显示出来
这是为什么呢?请指教

Dim Inputsignal As Integer

Private Sub Command1_Click()
    MSComm1.Output = "1"            '发送布防指令
    {Pass_word = Val(InputBox("请输入ID0001的密码"))
    text2.text = Inputsignal       (结果text2里显示为0)
    If Inputsignal = Pass_word Then
         Unload Me
         COMForm.Show
    Else
         MsgBox "密码错误", , "提示"
    End If}
End Sub

Private Sub Form_Load()
    MSComm1.Settings = "9600,n,8,1"   ' 设置波特率和发送字符格式"
    MSComm1.CommPort = 1            ' 设置通讯串口
    MSComm1.InputLen = 0            ' 设置或返回一次从接收缓冲区中读取字节数,0表示一次读取所有数据
    MSComm1.InBufferSize = 512      ' 设置接收缓冲区512Byte
    MSComm1.InBufferCount = 0
    MSComm1.OutBufferSize = 512       ' 设置发送缓冲区512Byte
    MSComm1.OutBufferCount = 0
    MSComm1.RThreshold = 1            ' 每个字符到接收缓冲区都触发接收事件
    MSComm1.SThreshold = 1
    MSComm1.PortOpen = True         ' 打开串口
End Sub

Private Sub MSComm1_OnComm()
    Select Case MSComm1.CommEvent             ' 设置oncomm事件,读取片机内存的值
      Case comEvReceive
            Inputsignal = MSComm1.Input
            Text1.Text = Inputsignal
      Case Else
    End Select
End Sub

armecos 发表于 2009-12-20 14:55:56

favr 发表于 2009-12-20 19:08:46

你这样改改看会发生什么事?
Private Sub Command1_Click()

    MSComm1.Output = "1"
    DoEvents                     ' 增加的,不要这句也试试
    Pass_word = Val(InputBox("请输入ID0001的密码"))
    DoEvents                     ' 增加的
    text2.text = Inputsignal       ' 看结果是不是 ‘1’

    If Inputsignal = Pass_word Then
         Unload Me
         COMForm.Show
    Else
         MsgBox "密码错误", , "提示"
    End If

End Sub

xiaowei0588 发表于 2010-2-1 19:25:51

标记!
页: [1]
查看完整版本: 请教VB串口通信问题