编程怎么实现打开和关闭端口

解决方案 »

  1.   

    http://search.csdn.net/Expert/topic/981/981277.xml?temp=.7898676
      

  2.   

    如果是MSCOMM 就按MCDN上的例子就可以了
      

  3.   

    你是说MSDN吗,我没装能不能给段看看
      

  4.   

    使用Mscomm控件,不断读取串口MSComml.Input数据。
    属性 描述
    CommPort 设置或返回通信端口号
    Settings 以字符串的形式设置或返回波特率、奇偶校验、数据位和停止位
    PortOpen 设置或返回通信端口的状态。也可以打开和关闭端口
    Input 返回和删除接收缓冲区中的字符
    Output 将字符串写入发送缓冲区
    CommEvent属性为通信事件或错误返回下列值之一。在该控件的对象库中也可以找到这些常量。
    常量 值 描述
    ComEventBreak 1001 收到了断开信号
    ComEventCTSTO 1002 Clear To Send Timeout。在发送字符时,在系统指定的事1件内,CTS(Clear To Send)线是低电平
    ComEventDSRTO 1003 Data Set Ready Timeout。在发送字符时,在系统指定的事件内,DSR(Data Set Ready)线是低电平
    ComEventFrame 1004 数据帧错误。硬件检测到一个数据帧错误
    ComEventOverrun 1006 端口溢出。硬件中的字符尚未读,下一个字符又到达,并且丢失
    ComEventCDTO 1007 Carrier Detect Time。在发送字符时,在系统指定的事件内,CD(Carrier Detect)线是低电平。CD也称为RLSD(Receive Line Singal Detect,接收线信号检测)
    ComEventRxOver 1008 接收缓冲区溢出。在接收缓冲区中没有空间
    ComEventRxParity 1009 奇偶校验错。硬件检测到奇偶校验错误7
    ComEventTxFull 1010 发送缓冲区满。在对发送字符排队时,发送缓冲区满
    ComEventDCB 1011 检取端口DCB(Device Control Blick)时发生了没有预料到的错误'打开串口
    MSComml.CommPort =2
    '设定Com2
    If MSComml.PortOpen = False Then
    MSComm1.Settings = "9600,n,8,1"
    '9600波特率,无校验,8位数据位,1位停止位
    MSComm1.PortOpen = True
    '打开串口
    End if
    MSComm1.OutBufferCount = 0
    '清空发送缓冲区
    MSComm1.InBufferCount = 0
    '滑空接收缓冲区'接收二进制数据
    MSComm1.InputMode= ComInputModeBinary
    Buffer=MSComm1.Input
    '接收字符数据
    MSComm1.InputMode=comInputModeText
    Buffer = MSComml.Input
    Mscomm控件
    属性 描述
    CommPort 设置或返回通信端口号
    Settings 以字符串的形式设置或返回波特率、奇偶校验、数据位和停止位
    PortOpen 设置或返回通信端口的状态。也可以打开和关闭端口
    Input 返回和删除接收缓冲区中的字符
    Output 将字符串写入发送缓冲区
    CommEvent属性为通信事件或错误返回下列值之一。在该控件的对象库中也可以找到这些常量。
    常量 值 描述
    ComEventBreak 1001 收到了断开信号
    ComEventCTSTO 1002 Clear To Send Timeout。在发送字符时,在系统指定的事1件内,CTS(Clear To Send)线是低电平
    ComEventDSRTO 1003 Data Set Ready Timeout。在发送字符时,在系统指定的事件内,DSR(Data Set Ready)线是低电平
    ComEventFrame 1004 数据帧错误。硬件检测到一个数据帧错误
    ComEventOverrun 1006 端口溢出。硬件中的字符尚未读,下一个字符又到达,并且丢失
    ComEventCDTO 1007 Carrier Detect Time。在发送字符时,在系统指定的事件内,CD(Carrier Detect)线是低电平。CD也称为RLSD(Receive Line Singal Detect,接收线信号检测)
    ComEventRxOver 1008 接收缓冲区溢出。在接收缓冲区中没有空间
    ComEventRxParity 1009 奇偶校验错。硬件检测到奇偶校验错误7
    ComEventTxFull 1010 发送缓冲区满。在对发送字符排队时,发送缓冲区满
    ComEventDCB 1011 检取端口DCB(Device Control Blick)时发生了没有预料到的错误'打开串口
    MSComml.CommPort =2
    '设定Com2
    If MSComml.PortOpen = False Then
    MSComm1.Settings = "9600,n,8,1"
    '9600波特率,无校验,8位数据位,1位停止位
    MSComm1.PortOpen = True '(打开串口)-----------------------MSComm1.PortOpen=False'(关闭串口)
    '打开串口
    End if
    MSComm1.OutBufferCount = 0
    '清空发送缓冲区
    MSComm1.InBufferCount = 0
    '滑空接收缓冲区'接收二进制数据
    MSComm1.InputMode= ComInputModeBinary
    Buffer=MSComm1.Input
    '接收字符数据
    MSComm1.InputMode=comInputModeText
    Buffer = MSComml.Input
      

  5.   

    MSComm1.PortOpen = True     '打开端口
    MSComm1.PortOpen = False    '关闭端口