我编了一个串口通信的程序。用串口线连接到一块开发板上,首先运行我的程序,然后再启动开发板。接着就会出现"帧错误"(comFrame)或“中断”(comBreak)的事件。
   我的程序如下,请各位帮我看看,究竟是什么原因?不胜感激!Private Sub Form_Load()
    
    With MSComm1                                    '初始化串口
        .CommPort = 1                               '使用Com1口
        .Settings = "19200,N,8,1"                   '设置通讯参数
        .RThreshold = 1
        .SThreshold = 1
        .Handshaking = comXOnXoff
        .InBufferSize = 1024                        '设置MSComm1接收缓冲区为40字节
        .OutBufferSize = 512                        '设置MSComm1发送缓冲区为2字节
        .InputMode = 1                              '设置接收数据模式为二进制形式
        .PortOpen = True                            '打开串口
    End withEnd Sub
Private Sub MSComm1_OnComm()    Dim Indata As Variant               '接收原始数据
    Dim Data As String                  '转换后的数据
            
    Select Case MSComm1.CommEvent    Case comEvReceive               '有接收事件发生
        
    Indata = MSComm1.Input
    Data = StrConv(Indata, vbUnicode)    ShowData txtTerm, (StrConv(Indata, vbUnicode)) '这一句是将收到的串口信息显示在文本框中
        ' Error messages.
        Case comBreak
            ERMsg$ = "收到中断"
        Case comCDTO
            ERMsg$ = "运输检测超时"
        Case comCTSTO
            ERMsg$ = "CTS 超时"
        Case comDCB
            ERMsg$ = "检索 DCB 错误"
        Case comDSRTO
            ERMsg$ = "DSR 超时"
        Case comFrame
            ERMsg$ = "帧错误"
        Case comOverrun
            ERMsg$ = "超限错误"
        Case comRxOver
            ERMsg$ = "接收缓冲区溢出"
        Case comRxParity
            ERMsg$ = "奇偶校验错"
        Case comTxFull
            ERMsg$ = "传送缓冲区满"
        Case Else
            ERMsg$ = "未知的错误或事件"
    End Select
           
    If Len(ERMsg$) Then      
        Ret = MsgBox(ERMsg$, 1, "单击“取消”退出,单击“确定”忽略。")       
    End If
End Sub