'首先设置MSComm1的参数,如Private Sub Form_Load ()
' 保存输入子串的缓冲区
Dim Instring As String
' 使用 COM1。
MSComm1.CommPort = 1
' 9600 波特,无奇偶校验,8 位数据,一个停止位。
MSComm1.Settings = "9600,N,8,1"
' 当输入占用时,
' 告诉控件读入整个缓冲区。
MSComm1.InputLen = 0
' 打开端口。
MSComm1.PortOpen = True
End Sub'接收数据MSComm1.Input,有两种方法:
'1、事件驱动
' 缓冲区变化后,产生OnComm,响应时间并接收处理,适应于不等个数据包长或随时发送而不是定时发送,如:
Private Sub MSComm_OnComm ()
Select Case MSComm1.CommEvent
' Handle each event or error by placing
' code below each case statement' 错误
Case comEventBreak ' 收到 Break。
Case comEventCDTO ' CD (RLSD) 超时。
Case comEventCTSTO ' CTS Timeout。
Case comEventDSRTO ' DSR Timeout。
Case comEventFrame ' Framing Error
Case comEventOverrun '数据丢失。
Case comEventRxOver'接收缓冲区溢出。
Case comEventRxParity' Parity 错误。
Case comEventTxFull '传输缓冲区已满。
Case comEventDCB '获取 DCB] 时意外错误 ' 事件
Case comEvCD ' CD 线状态变化。
Case comEvCTS ' CTS 线状态变化。
Case comEvDSR ' DSR 线状态变化。
Case comEvRing ' Ring Indicator 变化。
Case comEvReceive ' 收到 RThreshold # of chars.
Case comEvSend ' 传输缓冲区有 Sthreshold 个字符 '
'
Case comEvEof ' 输入数据流中发现 EOF 字符
'
End Select
End Sub
'2、定时接收
Private Sub Timer1_Timer()
Buffer$ = MSComm1.Input
End Sub
'发送数据MSComm1.Output
Dim datas[10] as byte
Dim datasend
datas[1]=1
datas[2]=11
datas[3]=21
datas[4]=41
datas[5]=71
'.
'.
'.
datasend=datas
MSComm1.Output = "要发送的数据,可以是字符或二进制数据"
MSComm1.Output = datasend
'最后关闭串行端口。
MSComm1.PortOpen = False
' 保存输入子串的缓冲区
Dim Instring As String
' 使用 COM1。
MSComm1.CommPort = 1
' 9600 波特,无奇偶校验,8 位数据,一个停止位。
MSComm1.Settings = "9600,N,8,1"
' 当输入占用时,
' 告诉控件读入整个缓冲区。
MSComm1.InputLen = 0
' 打开端口。
MSComm1.PortOpen = True
End Sub'接收数据MSComm1.Input,有两种方法:
'1、事件驱动
' 缓冲区变化后,产生OnComm,响应时间并接收处理,适应于不等个数据包长或随时发送而不是定时发送,如:
Private Sub MSComm_OnComm ()
Select Case MSComm1.CommEvent
' Handle each event or error by placing
' code below each case statement' 错误
Case comEventBreak ' 收到 Break。
Case comEventCDTO ' CD (RLSD) 超时。
Case comEventCTSTO ' CTS Timeout。
Case comEventDSRTO ' DSR Timeout。
Case comEventFrame ' Framing Error
Case comEventOverrun '数据丢失。
Case comEventRxOver'接收缓冲区溢出。
Case comEventRxParity' Parity 错误。
Case comEventTxFull '传输缓冲区已满。
Case comEventDCB '获取 DCB] 时意外错误 ' 事件
Case comEvCD ' CD 线状态变化。
Case comEvCTS ' CTS 线状态变化。
Case comEvDSR ' DSR 线状态变化。
Case comEvRing ' Ring Indicator 变化。
Case comEvReceive ' 收到 RThreshold # of chars.
Case comEvSend ' 传输缓冲区有 Sthreshold 个字符 '
'
Case comEvEof ' 输入数据流中发现 EOF 字符
'
End Select
End Sub
'2、定时接收
Private Sub Timer1_Timer()
Buffer$ = MSComm1.Input
End Sub
'发送数据MSComm1.Output
Dim datas[10] as byte
Dim datasend
datas[1]=1
datas[2]=11
datas[3]=21
datas[4]=41
datas[5]=71
'.
'.
'.
datasend=datas
MSComm1.Output = "要发送的数据,可以是字符或二进制数据"
MSComm1.Output = datasend
'最后关闭串行端口。
MSComm1.PortOpen = False
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货