MSComm控件编程

MSComm控件是微软公司开发的专门用于串行通信的控件。通过设置控件的几个属性,然后添加空间的事件响应代码,就可以使串口按照要求进行工作。


MSComm最常用的属性

1. CommPort属性: 设置或获取使用的串口编号(必须在打开串口之前设置)

void SetCommPort(short nNewValue); //设置串口编号

short GetCommPort(); //返回正在使用的串口编号

2. Settings属性:设置或获取串行通信的通信参数,参数包括波特率、奇偶校验类型、数据位数及停止位数等4个参数(通信双方的Settings参数设置必须相同,否则无法通信)

void SetSettings(LPCTSTR lpszNewValue); //设置通信参数,由lpszNewValue来表示

CString GetSettings(); //读取当前串口通信参数

3. PortOpen属性:打开或关闭串口

void SetPortOpen(BOOL bNewValue);

BOOL GetPortOpen();

4. Input属性:从串口通信输入缓冲区获取数据。注意: 执行该函数 ,返回并删除接受缓冲区中的数据。默认情况下读取缓冲区中的全部内容,若设置InputLen属性值大于0,则读取的字符数量由InputLen属性值决定。

VARIANT GetInput();

5. Output属性: 向串口通信输出缓冲区写入数据,然后通过串口将数据发送出去。

void SentOutput(const VARIANT& newValue);

注意: 串口通信缓冲区中的数据都是VARIANT类型的数据,所以在写入或者读取的时候都需要进行数据类型转换。


与输出操作有关的属性

1. InputLen属性:默认值为0,读取整个缓冲区的内容

void SetInoutLen(short nNewValue);

short GetInputLen();

2. InputMode属性:设置读取数据的方式,为0:表示以文本方式从输入缓冲区读取数据;为1:表示以二进制方式从输入缓冲区读取数据。

void SetInputMode(long nNewValue);

long GetInputMode();

3.  InBufferSize属性: 默认值1024(字节)

void SetInBufferSize(short nNewValue);

short GetInBufferSize();

4. InBufferCount属性:可以读取的有效数据个数

short GetInBufferCount();

void SetInBufferCount(short nNewValue); //nNewValue为0时,清空输入缓冲区,其他参数都将导致函数出错

5. RThreshold属性:该属性代表一个阀值。当接受缓冲区中的字符达到该阀值时,MSComm控件就会产生OnComm事件,并且CommEvent属性会被设置为CommEvReceive,即接受事件。

void SetRThreshold(short nNewValue); //若该值为0,将不会产生OnComm事件

short GetRThreshold();

6. CommEvent属性: 当控件运行错误或产生事件时,向程序报告事件类型

short GetCommEvent();

void SetCommEvent(short nNewValue);

7. EOFEnable属性:决定在输入过程中,控件是否寻找文件结尾EOF字符

void SetEOFEnable(BOOL bNewValue);

BOOL GetEOFEnable();


与输出操作有关的属性

1. OutBufferSize属性:指示输出缓冲区的长度

void SetOutBufferSize(short nNewValue);

short GetOutBufferSize();

2. OutBufferCount属性:输出缓冲区中的有效可用字符个数

short GetOutBufferCount();

void SetOutBufferCount(short nNewValue);

3. SThreshold属性:该属性代表一个阀值。当接受缓冲区中的字符达到该阀值时,MSComm控件就会产生OnComm事件,并且CommEvent属性会被设置为CommEvSend

void SetSThreshold(short nNewValue); //若该值为0,将不会产生OnComm事件

short GetSThreshold();


与传输控制有关的属性

如果在串口通信时使用硬件握手信号,那么应该在程序中操作这些硬件握手信号;否则,MSComm控件将按照无握手进行操作。

1. Handshaking属性:确定是否使用握手及采取何种握手方式。

2. DTREnable属性:Data Terminal Ready

3. RTSEnable属性:Request To Send

4. DSRHolding属性: Data Set Ready

5. CTSHolding属性: Clear To Send

6. CDHolding属性: Carrier Detect


MSComm控件事件

MSComm控件只有一个事件,无论何时当CommEvent属性的值变化时,就会激发OnComm事件,根据CommEvent属性值判断具体事件。在OnComm事件的响应代码断内使用Switch函数根据CommEvent值来分别执行各种情况下的处理程序。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值