MSComm控件进行串口编程步骤: 1. 2. 3. 4. 5. 6. +MSComm控件 常用属性: 1.CommPort:设置并返回通信端口号 2.Settings: 3.PortOpen: 4.Input: 5.Output: 6.InputLen: 7.InBufferSize:设置或返回输入缓冲区的大小。 8.OutBufferSize:设置或返回输入缓冲区的大小。 9.InBufferCount: 10.OutBufferCount: 对MSComm控件通过Get/Set函数对来获取或设置控件的属性,每个属性均有与之对应的Get/Set函数对。 用法 说明 1.CommPort:设置并返回通信端口号 Void CMSComm::SetCommPort(short n); Short CMSComm::GetCommPort(); 说明:n可以设置成1到16中的任何数(缺省值为1)。但是,如果用PortOpen属性打开一个并不存在的端口是,MSComm控件会产生错误68(设备无效); 必须在打开端口之前设置CommPort属性。 2.Settings:以字符串的形式设置并返回波特率、奇偶校验、数据位、停止位 Void CMSComm::SetSettings(LPCTSTR lpszNewValue); CString CMSComm::GetSettings(); 说明:当端口打开时,如果设置值lpszNewValue非法,则MSComm控件产生错误380(非法属性值)。 Value 由四个设置值组成,有如下格式:“BBBB,P,D,S” BBBB:波特率 Value的缺省值:“9600,N,8,1”。 3.PortOpen: 用于打开或关闭串口,或者返回串口的开、关状态 Void CMSComm::SetPortOpen(BOOL BOOL 说明:bNewValue值设置为TRUE,则打开串口;bNewValue值设置为FALSE,则关闭串口。编程时可以再程序中打开或关闭串口,当程序终止,MSComm控件自动关闭串口。 4.InPut: 从接收缓冲区内读出数据 VARIANT CMSComm::GetInPut(); 说明:返回数据类型为VARIANT型变量,该属性在串口没有打开时不能用,在运行时是只读的。 InPutMode=0时(检取数据为文本方式),变量中含String型数据。 InPutMode=1时(检取数据位二进制方式),变量中含Byte型数据。 5.OutPut:向发送缓冲区写数据,或返回发送缓冲区当前的数据 Void CMSComm::SetOutPut(const VARIANT& VARIANT CMSComm::GetOutPort(); 说明:变量类型为VARIANT,该属性在串口未打开时不可用。OutPut可以发送文本或二进制数据,当发送文本类型数据时,将字符型数据放入VARIANT型变量中;发送二进制数据时(按字节发送),将字节型数据放入VARIANT型变量中。若数据中包含了内嵌控制字符。空字符等,必须将其作为二进制数据发送。 6.InputLen:设置并返回Input属性从接收缓冲区读取的字符数。 Void CMSComm::SetInputLen(short Short CMSComm::GetInputLen(); 说明:InputLen属性的缺省值是0.设置InputLen为0时,使用Input将使MSComm控件读取接收缓冲区中全部的内容。 若接受缓冲区中InputLen字符无效,Input属性返回一个零长度字符串(“”)。在使用Input前,用户可以选择检查InBufferCount来确定缓冲区中是否已有需要数目的字符。该属性在从输出格式为定长数据的机器读取数据时非常有用。 7.InBufferSize:设置或返回输入缓冲区的大小。 VoidCMSComm::SetInBufferSize(short nNewValue); Short CMSComm::GetInBufferSize(); 说明:设置值的缺省值(默认值大小为1024字节(byte))。 8.OutBufferSize: VoidCMSComm::SetOutBufferSize(short nNewValue); Short CMSComm::GetOutBufferSize(); 说明:设置值的缺省值,默认值大小为512字节(byte),此值太小,缓冲区数据易溢出,太大会占不必要的内存。 9.InBufferCount: Void CMSComm::SetInBufferCount(short Short CMSComm::GetInBufferCount(); 说明:当设置InBufferCount属性值为0时,可以清空接收缓冲区。 10.OutBufferCount: Void CMSComm::SetOutBufferCount(short Short CMSComm::GetOutBufferCount(); 说明:当设置InBufferCount属性值为0时,可以清空发送缓冲区 |
|
来自: 涉水I > 《CMScomm控件使用》