1,451
社区成员
发帖
与我相关
我的任务
分享
#includ<stdio.h>
puts("rinimama");
Option Explicit
Private Sub Command1_Click()
Text1.Text = "此时输出多画面。 '其中的一个命令 "
Dim a(0 To 1) As Byte
a(0) = &H55
a(1) = &H3D
MSComm1.Output = a
End Sub
Private Sub Form_Load()
MSComm1.CommPort = 1 '"选用com1串行口
MSComm1.Settings = "9600,O,8,1" '"波特率9600,奇校验,8位数据位,1位停止位
MSComm1.InputLen = 1 '"读取input接收缓冲区全部字节
MSComm1.InBufferSize = 1024 '"设置接收缓冲区的字节长度
MSComm1.InBufferCount = 0 '"清除发送缓冲区数据
MSComm1.OutBufferCount = 0 '"清除接收缓冲区数据
MSComm1.InputMode = 1 '"输入模式为binary
MSComm1.RThreshold = 1 '"控件收到数据时将触发OnComm事件
'MSComm1.Handshaking = 2
MSComm1.PortOpen = True
End Sub
Private Sub MsComm1_OnComm()
Dim a() As Byte
Dim i As Long
Select Case MSComm1.CommEvent
Case comEvReceive
a = MSComm1.Input
Print UBound(a)
End Select
End Sub
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
Option Explicit
Dim sjByte(1) As Byte
Dim BytReceived() As Byte
Dim strData As String
Dim openFlag As Boolean
Private Sub Command1_Click()
If openFlag Then
Timer1.Enabled = False '停止论询
Command1.Caption = "Send"
Else
Timer1.Enabled = True '执行论询
Command1.Caption = "Stop"
End If
openFlag = Not openFlag
End Sub
Private Sub Form_Load()
MSComm1.CommPort = 1
MSComm1.Settings = "9600,N,8,1" 'N是无奇偶校验
MSComm1.InputMode = comInputModeBinary '二进制方式接收
MSComm1.RThreshold = 1 '产生OnComm事件
MSComm1.PortOpen = True
Timer1.Interval = 50
Timer1.Enabled = False
End Sub
Private Sub MSComm1_OnComm() '接收数据
Dim strBuff As String
Text1 = ""
Select Case MSComm1.CommEvent
Case 2
MSComm1.InputLen = 0
strBuff = MSComm1.Input
BytReceived() = strBuff
jieshou
Text1 = strData
End Select
End Sub
Private Sub Timer1_Timer() '论询命令生成
Static sum As Integer
sjByte(0) = &H55
sum = sum + 1
sjByte(1) = 48 + sum
MSComm1.Output = sjByte
If sum >= 13 Then
sum = sum - &HD
End If
End Sub
Public Sub jieshou() '接收处理为16进制显示
Dim i As Integer
For i = 0 To UBound(BytReceived)
If Len(Hex(BytReceived(i))) = 1 Then
strData = strData & "0" & Hex(BytReceived(i))
Else
strData = strData & Hex(BytReceived(i))
End If
Next
End Sub