问题范围太大了,建议参考VB的MSComm控件说明
Private Sub MSComm1_OnComm()
Select Case MSComm1.CommEvent
Case 2
inPutByte = MSComm1.Input
Case 7
MyErr = "结束"
Case 6
MyErr = "检测到振铃信号。一些 UART(通用异步接收— 传输)可能不支持该事件。"
Case 5
MyErr = "Carrier Detect 线的状态发生变化。"
Case 4
MyErr = "Data Set Ready 线的状态发生变化。该事件只在 DST 从 1 变到 0 时才发生。"
Case 3
MyErr = "Clear To Send 线的状态发生变化。"
Case 1
MyErr = "在传输缓冲区中有比 Sthreshold 数少的字符。"
Case 1001
MyErr = "接收到一个中断信号。"
Case 1002
MyErr = "Clear To Send 超时。在系统规定时间内传输一个字符时,Clear To Send 线为低电平。"
Case 1003
MyErr = "Data Set Ready 超时。在系统规定时间内传输一个字符时,Data Set Ready 线为低电平。"
Case 1004
MyErr = "帧错误。硬件检测到一帧错误。"
Case 1006
MyErr = "端口超速。没有在下一个字符到达之前从硬件读取字符,该字符丢失。"
Case 1007
MyErr = "载波检测超时。在系统规定时间内传输一个字符时,Carrier Detect 线为低电平。Carrier Detect 也称为 Receive Line Signal Detect (RLSD)。"
Case 1008
MyErr = "接受缓冲区溢出。接收缓冲区没有空间。"
Case 1009
MyErr = "奇偶校验。硬件检测到奇偶校验错误"
Case 1010
MyErr = "传输缓冲区已满。传输字符时传输缓冲区已满"
Case 1011
MyErr = "检索端口的设备控制块 (DCB) 时的意外错误 "
Case Else
MyErr = "串口错误提示代码:" & Format(MSComm1.CommEvent)
End Select