我使用mscomm.output="内容"
没有效果,之前有需要做什么操作么。
我已经打开串口了mscomm.portopen=ture

解决方案 »

  1.   

    '还要设置串口呀Private Sub Form_Load()
    MSComm1.InBufferSize = 5120
    MSComm1.OutBufferSize = 2560
    MSComm1.CommPort = 1
    MSComm1.Settings ="9600,N,8,1"
    MSComm1.InputLen = 0
    MSComm1.InputMode = comInputModeText
    MSComm1.PortOpen = True
    MSComm1.RThreshold = 1
    MSComm1.SThreshold = 1
    End Sub
      

  2.   

    先串口初始化:如:With MSComm1
         .CommPort=2     ‘使用COM2
         .Setting=“9600,N,8,1"        ‘设置通信口参数
         .InBufferSize=40
         ‘设置MSComm1接收缓冲区为40字节
         .OutBufferSize=2    
         ‘设置MSComm1发送缓冲区为2字节
         .InputMode = comInputModeBinary
         ‘设置接收数据模式为二进制形式
         .InputLen = 1         
         ‘设置Input 一次从接收缓冲读取字节数为1
         .SThreshold = 1
        ‘设置Output 一次从发送缓冲读取字节数为1
         .InBufferCount = 0  ‘清除接收缓冲区
         .OutBufferCount = 0  ‘清除发送缓冲区
         .RThreshold = 1  
    ‘设置接收一个字节产生OnComm事件
         If .PortOpen = False Then    
        ‘判断通信口是否打开
            .PortOpen = True    ‘打开通信口
            If Err Then    ‘错误处理
              MsgBox “串口通信无效"
              Exit Sub
            End If
         End If
      End With上下协议必须一致,否则通信无效。比如拨特率不匹配等。而且数据桢格式必须一致,起停标志位等,否则无效。
      

  3.   

    这些都设置过了。接收数据正常的。
    select case mscomm.comevent
       case comEvreceive
          这里代码执行
       case comEvsend
          始终不执行
    end select
      

  4.   

    响应 COMEVSEND 要先设置SThreshold 属性
      

  5.   

    我设置了1,而且肯定外设是好的。我用windows超级终端可以访问,也可以发消息给外设
      

  6.   

    发送的字符后面加一个vbcr.不然发送的内容只存在缓冲区..