在mfc中进行串口通讯最简单的方法莫过于在对话框中使用MSCOMM控件了,MSComm通信控件提供了一系列标准通信命令的接口,它允许建立串口连接,可以连接到其他通信设备(如Modem).
还可以发送命令、进行数据交换以及监视和响应在通信过程中可能发生的各种错误和事件,从而可以用它创建全双工
1.串口通信基础知识
皿信的通道。这些串口在CPU和外设之间充当解释器的角色。当字符数据从CPU发送给外设时,这些字符数据将被转换成串行比特
流数据;当接收数据时,比特流数据被转换为字符数据传递给CPU,再进一步说,在操作系统方面,Windows用通信驱动程序
(COMM.DRV)调用API函数发送和接收数据,当用通信控件或声明调用API函数时,它门由COMM.
作为一个vB程序员,要编写通信程序.只需知道通信控件提供给Windows通信AP1函数的接口即可.换句话说,只需设定和监视通
信控件的属性和事件即可。
2.使用Mscomm控件
在开始使用MSComm控件之前。需要先了解其属性、事件或错误
属性
CommPort
Settings
PortOpen
Input
Output
CommEvent属性为通信事件或错误返回下列值之一。在该控件的对象库中也可以找到这些常量。
ComEventBreak
ComEventCTSTO
ComEventDSRTO
ComEventFrame
ComEventOverrun
ComEventCDTO
ComEventRxOver
ComEventRxParity
ComEventTxFull
ComEventDCB
通信事件包含了下面的设置:
常量
ComEvSend
ComEvReceive
ComEvCTS
ComEvDSR
ComEvCD
ComEvEOF
Error消息(MSComm控件)下表列出了MSComm控件可捕获的错误消息:
常量
ComInvalidPropertyValue
ComSetNotSupported
ComGetNotSupported
ComPortOpen
ComPortInvalid
ComPortAleadyOpen
11楼
ComNoOpen
ComSetCommStateFailed
ComPortNotOpen
ComReadError
ComDCBError
注意在使用的时候一定要保证两个通讯串口的设置是相同的,否则受到的信息将会产生错误!由于取值位数的不同,有可能发送的信息要读很多次才能组合成需要的信息!
SComm控件的调出及其主要属性如下。
(1)MSComm控件的调出
VB6.0的MSComm控件并不会主动出现在工具箱中,当需要它时,让它出现在工具箱中的步骤如下:
①选择菜单上的“工程”;
②在“工程”菜单中选择“部件”;
③出现对话框后,在可勾选的项目中勾选Microsoft
④按下“确定”按钮,即可在工具箱中见到“电话盒”的图标,就可以将此控件加载进行串行通信。
(2)MSComm属性
MSComm属性很多,其重要的属性说明如下:
①CommPort:设定或返回通信端口号。端口号由1开始往上递增,最大值是16。
②Settings:设定通信端口初始化参数。其格式为“Baud,P,D,S”,其中Baud为波特率,
③PortOpen:设定并返回通信端口的状态。
使用串行端口之前必须先打开该端口(PortOpen=True),而在使用完毕后必须关闭该端口(PortOpen=False)。
④Input:从输入缓冲区返回并清除字符。这是一种FIFO(FirstinFirstOut)机制。如Buffer$=MSComm1.Input,表示将输入缓冲区的字符读入Buffer字符串变量中。
⑤Output:将一个字符或字符串写入传输缓冲区,如MSComm1.Output=“ABCD”。此即将ABCD4个字符通过串行端口传送出去。
⑥InBufferCount:传回在接收缓冲区中的字符数,是指已接收,并在接收缓冲区等待读取的字符数。
⑦InputMode:设定和返回类型。该属性设为0时,数据通过Input属性以文本方式取回,如设为1,则数据通过Input属性以二进制方式取回。
(以上转载自http://blog.sina.com.cn/s/blog_7656589b010162e5.html)