Private Sub Command8_Click()MSComm1.CommPort = Val(Combo1.Text)  '打开串口If MSComm1.PortOpen = False ThenMSComm1.Settings = " Combo2.Text, Combo3.Text,Combo4.Text"    '设置参数  ------ 有问题!MSComm1.PortOpen = TrueEnd IfMSComm1.OutBufferCount = 0         '清空发送缓存区MSComm1.InBufferCount = 0          '清空接收缓存区MSComm1.Output = "text3.text" & vbC     ' 读出并发送AT命令End Sub着是我写的一个发送AT命令的小程序,但是有错误,相关参数是从combo.text 中读出的,麻烦各位看看!

解决方案 »

  1.   

    MSC1.CommPort = 1                                '使用串行口1
    MSC1.Settings = "9600,N,8,1"                     '波特率9600,偶校验,8个数据位,1个停止位
    没设置!~~~
      

  2.   

    我的MSComm1.Settings = " Combo2.Text, Combo3.Text,Combo4.Text"    就是设置呀可能是我的写法不对  帮忙改以下
      

  3.   

    可能是字符类型不对吧,text里的好象是string型,你用强制类型转换函数试试。比如cint(combo2.text)
      

  4.   

    MSComm1.Settings = Combo2.Text & "," & Combo3.Text & "," & Combo4.Text
      

  5.   

    一个串口通讯的例子新建一工程,
    添加一MSCOMM控件.
    添加
    COMMAND1用于打开/关闭串口
    COMMAND2用于发送数据.
    添加TEXT1,TEXT2,text3
    添加combo1,combo2,combo3,combo4,combo5下面是完整代码
    把下面的代码完整复制后,运行试试,下面的代码经试验,运行成功!Option ExplicitPrivate Sub Command1_Click()If MSComm1.PortOpen Then
    MSComm1.PortOpen = False
    Command1.Caption = "打开端口"
    Command2.Enabled = False
    Else
    MSComm1.CommPort = Int(Combo1.Text)
    MSComm1.Settings = CStr(Combo2.Text & "," & Combo3.Text & "," & Combo4.Text & "," & Combo5.Text) '这里不要弄错
    Command1.Caption = "关闭端口"
    MSComm1.PortOpen = True
    Command2.Enabled = True
    End If
    End SubPrivate Sub Command2_Click()
    MSComm1.Output = Text1.Text
    End SubPrivate Sub Form_Load()
    Command1.Caption = "打开端口"
    Command2.Enabled = False
    MSComm1.Handshaking = 0
    Combo1.AddItem "1"        '往COMBO1里添加数据,请自行加上
    Combo1.AddItem "2"
    Combo1.Text = "1"
    Combo2.AddItem "110"        '往COMBO2里添加数据   串口速率
    Combo2.AddItem "300"
    Combo2.AddItem "600"
    Combo2.AddItem "1200"
    Combo2.AddItem "2400"
    Combo2.AddItem "4800"
    Combo2.AddItem "9600"
    Combo2.AddItem "14400"
    Combo2.AddItem "19200"
    Combo2.AddItem "28800"
    Combo2.AddItem "38400"
    Combo2.AddItem "56000"
    Combo2.AddItem "57600"
    Combo2.AddItem "115200"
    Combo2.AddItem "128000"
    Combo2.AddItem "256000"
    Combo2.Text = "9600"
    Combo3.AddItem "E"              '往COMBO3里添加数据,       奇偶校验
    Combo3.AddItem "O"
    Combo3.AddItem "N"
    Combo3.AddItem "M"
    Combo3.AddItem "S"
    Combo3.Text = "N"
    Combo4.AddItem "4"                '往COMBO4里添加数据,       数据位
    Combo4.AddItem "5"
    Combo4.AddItem "6"
    Combo4.AddItem "7"
    Combo4.AddItem "8"
    Combo4.Text = "8"Combo5.AddItem "1"                 '往COMBO5里添加数据,       停止位
    Combo5.AddItem "1.5"
    Combo5.AddItem "2"
    Combo5.Text = "1"MSComm1.NullDiscard = True         '对mscomm1控件设参数
    MSComm1.RTSEnable = True
    MSComm1.RThreshold = 1
    MSComm1.SThreshold = 1End SubPrivate Sub MSComm1_OnComm()
    Dim Buffer As String
    Select Case MSComm1.CommEvent
    ' 错误
          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.
          Buffer = MSComm1.Input
          Debug.Print "接收 - " & StrConv(Buffer, vbUnicode)
          Text2.Text = StrConv(Buffer, vbUnicode)
          Case comEvSend   ' 传输缓冲区有 Sthreshold 个字符                     '
                         '
          Case comEvEOF   ' 输入数据流中发现 EOF 字符
                         '
       End Select
    End Sub