用Activex实现串口通信

2014-11-23 20:00:33 · 作者: · 浏览: 15

为实现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"