首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

MSC 控件 一半概率丢掉 第一位数据(HEX),返回的20个HEX数据

2012-12-31 
MSC 控件 一半概率丢失 第一位数据(HEX),返回的20个HEX数据我有的是给单片机发送一组数据,单片机立即返回

MSC 控件 一半概率丢失 第一位数据(HEX),返回的20个HEX数据
我有的是给单片机发送一组数据,单片机立即返回一组数据确认状态



   MSComm1.CommPort = i              '设置通信端口为COM1
  MSComm1.Settings = "9600,n,8,1"    '设置串口参数无检验位
  MSComm1.InputMode = 1 '数字
  MSComm1.NullDiscard = False    'NULL字符从端口传送到接受缓冲区
        MSComm1.DTREnable = False      'DTR线无效
       MSComm1.EOFEnable = False       '不寻找EOF符
       MSComm1.RTSEnable = False       'RTS线无效
       MSComm1.InBufferCount = 0       '清空接受缓冲区
       MSComm1.OutBufferCount = 0     '清空传输缓冲区

   MSComm1.RThreshold = 1 '产生MSC事件
  MSComm1.SThreshold = 1 ' 产生MSC事件
MSComm1.InBufferSize = 256      '接收缓冲区 默认为1024个字节
        MSComm1.OutBufferSize = 256
        
 MSComm1.PortOpen = True

End Sub
’发送数据
Private Sub Command2_Click()
 On Error Resume Next
Dim W(12) As Byte
Dim j As Integer

W(0) = &HEB
W(1) = &H90
W(2) = &HEB
W(3) = &H90
W(4) = Hex(Val(ID.Text))
W(5) = 0
W(6) = 0
W(7) = &H2
W(8) = &H55
W(9) = &H57
W(10) = &H55
W(11) = &HAA


MSComm1.Output = W





End Sub


Private Sub MSComm1_OnComm()‘接收数据
  Dim Inbyte() As Byte

 Select Case MSComm1.CommEvent
    Case comEvReceive
      Inbyte = MSComm1.Input
        
       For i = 0 To UBound(Inbyte) Step 1
       
        re.Text = re.Text & Hex(Inbyte(i)) & Chr("32")
        Next i
        
    Case comEvSend
  End Select

End Sub
[解决办法]
参阅这个
用它来调试一下你的串口通信,如果OK,那么依据它来改写。
[解决办法]
1)关注一下波特率是否正确。
2)一字节一触发事件根本用不着循环
3)网上多看看好的串口通讯接收的例子

热点排行