自己对DELPHI学习的一点体会
源代码在线查看: 用activex实现串口通信 (2001年4月17日).txt
用Activex实现串口通信 (2001年4月17日)
网友更新 分类:数据库 作者:不记得了 推荐:Boolean 阅读次数:262
(http://www.codesky.net)
--------------------------------------------------------------------------------
用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"