一个上下位机的通信控制参数,使用的SerialMonitor监控串口通信数据过程,获得的串口状态如下图:而我在VB里怎么都不能设置为19200-8-E-2这种格式,始终只能设置成19200-8-E-1这种格式,和下位机通信的时候只有只要一写参数到下位机就会错误,下位机报警,而读下位机参数又是正常的。哪怕是整个通信过程全部模拟原装产品的读写数据还是只要一写参数到下位机就会错误报警。通信线也就是收发和地三根线而已,应该没有其他检测原装不原装的奇怪方法了,怎么可能无法写参数到下位机呢?比较下来就只有串口设置的格式有点不一样,请问他这中19200-8-E-2的格式在VB里怎么才能设置出来?

解决方案 »

  1.   

    使用最新版的MSCOMM控件?
      

  2.   

    这个最新版的也是叫“MSCOMM”?我用的还是6.0。再请问下里面的-2是什么意思?貌似搜索不到这个具体含义。
      

  3.   

    我没接触过串口通信,只知道一点儿皮毛。我觉得“19200-8-E-2”的意思,应该是:
    19200: 数据传输波特率
    8:   数据位数
    E:   偶校验
    2:   停止位2位至于VB6的串口控件能不能把“停止位”参数设置为2,我就不清楚了,
      你在使用,这些应该比我清楚,要不然就按“相关参数设置方式”试一下就知道了。
      

  4.   

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



    8 (缺省) 
    下表列出合法的停止位值。设置值   
    1  (缺省) 
    1.5   
    2   
    数据类型String
      

  5.   

    19200波特率,偶校验,8数据位,2停止位
    mscomm控件里settings就写成 "19200,e,8,2"