8015错误:could not set comm state,怎么解决,谢谢

解决方案 »

  1.   

    LZ:请核查下你
    MSComm控件的属性Settings设置是否符合规定.
      

  2.   

    Settings 属性
    设置并返回波特率、奇偶校验、数据位、停止位参数。
    语法
    object.Settings[ = value]
    Settings 属性语法包括下列部分:部分 描述 
    object 对象表达式,其值是“应用于”列表中的对象。 
    value 字符串表达式,说明通讯端口的设置值,如下所述。 
    说明
    当端口打开时,如果 value 非法,则 MSComm 控件产生错误 380(非法属性值)。
    Value 由四个设置值组成,有如下的格式:
    "BBBB,P,D,S"
    BBBB 为波特率,P 为奇偶校验,D 为数据位数,S 为停止位数。value 的缺省值是:
    "9600,N,8,1"
    合法的波特率:
    设置值
    300
    600
    1200
    2400
    4800
    9600(缺省)
    14400
    19200
    28800
    56000
    115200
      

  3.   

    Settings应该没问题,因为如果把串口停用再启用,就好了
      

  4.   

    Private Sub OpenProt()
        MSComm1.CommPort = 1
        MSComm1.Settings = "9600,N,8,1"
        MSComm1.OutBufferSize = 1024          ' 32 byte is the Limit.
        MSComm1.InBufferSize = 512
        MSComm1.RThreshold = 1
        MSComm1.SThreshold = 1
        MSComm1.InputLen = 0
        MSComm1.DTREnable = True
        MSComm1.RTSEnable = True
        MSComm1.PortOpen = True
    End Sub
    谢谢你
      

  5.   

    MSComm1.PortOpen = True 
    这句的时候出错
    实时错误‘8015':
    could nto set comm state,there may be one or more invalid communications parameters.
      

  6.   


    Option ExplicitPrivate Sub OpenProt()
        MSComm1.CommPort = 1
        MSComm1.Settings = "9600,N,8,1"
        MSComm1.OutBufferSize = 1024
        MSComm1.InBufferSize = 512
        MSComm1.RThreshold = 1
        MSComm1.SThreshold = 1
        MSComm1.InputLen = 0
        MSComm1.DTREnable = True
        MSComm1.RTSEnable = True
        MSComm1.PortOpen = True
    End SubPrivate Sub Form_Load()
        OpenProt
    End Sub这样的代码在我这儿未见任何错误!!
      

  7.   

    楼主,你的Setting是多少?贴出来看看
      

  8.   

    LZ在5楼已经贴了代码.
    MSComm1.Settings = "9600,N,8,1"
      

  9.   

        MSComm1.RThreshold = 1 
        MSComm1.SThreshold = 1 
        MSComm1.InputLen = 0 
        MSComm1.DTREnable = True 
        MSComm1.RTSEnable = True 
    这几个没有必要