当前位置:编程学习 > C/C++ >>

用Activex实现串口通信

 

 

为实现Windows的串口通信可用API实现,但十分不便。也可以用Active控件实现。

 

先在应用程序中插入Active控件Microsoft comm contronl(MSComm)。

 

SComm控件的属性

 

    MSComm控件的属性

 

        CommPort:设置串口号,类型 short :1-comm1 2-comm2.

 

        Settings:设置串口通讯参数,类型 CString :B-波特率 P-奇偶性(N-无校验,

E-偶校验,O-奇验) D-字节有效位数S-停止位。

 

        PortOpen:设置或返回串口状态,类型 BOOL:TURE-打开 FALSE-关闭。

 

        InputMode:设置从接收缓冲区读取数据的格式,类型 long: 0-Text 1-Bin.

 

        Input:从接收缓冲区读取数据 类型 VARIANT。

 

        InBufferCount:接收缓冲区中的字节数,类型:short.

 

        InBufferSize:接收缓冲区的大小,类型:short.

 

        Output:向发送缓冲区写入数据,类型:VARIANT.

 

        OutBufferCount:发送缓冲区中的字节数,类型:short.

 

        OutBufferSize:发送缓冲区的大小,类型:short.

 

        InputLen:设置或返回Input读出的字节数,类型:short.

 

        CommEvent:串口事件,类型:short.

 

程序示例

 

    串口初始化

 

        if(!m_comm.GetPortOpen())

 

            m_comm.SetPortOpen(TURE);        /*打开串口

 

        m_comm.SetSettings("4800,n,8,1");  /*串口参数设置 

 

        m_comm.SetInputMode(0);            /*设置TEXT缓冲区输入方式

 

        m_comm.SetRthresHold(1);           /*每接收一个字符则激发OnComm()事件

 

    接收数据

 

        m_comm.SetInputLen(1);               /*每次读取一个字符

 

        VARINAT V1=m_comm.GetInput();        /*读入字符

 

        m_V1=V1.bstrval;   

 

    发送字符

 

         m_comm.SetOutput(COlevariant("Hello");/*发送“Hello"

 

补充:软件开发 , C语言 ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,