狗狗细小自己会好吗:(三)MSComm控件进行串口编程的基本步骤
来源:百度文库 编辑:中财网 时间:2024/04/29 04:03:07
MSComm控件进行串口编程的基本步骤
2添加MSComm控件ID的控制变量或对象
3对串口进行初始化,设置MSComm控件的属性
4添加串口事件的消息处理函数OnComm()函数,在函数中根据应用需要,编写数据处理代码
5编写串口发送等其他代码
6关闭串口
个MSComm控件只能对应一个串口,如果应用程序需要访问多个串口,必须使用多个MSComm控件。
处理通信问题的方式:事件驱动方式(与中断原理类似,触发一个事件处理函数),查询方式。
MSComm控件的重要属性中的一部分
CommPort设置并返回通信端口号
Settings以字符串的形式设置并返回波特率、奇偶校验、数据位、停止位。
PortOpen设置并返回通信端口的状态。可以用来打开和关闭端口
Input从接受缓冲区返回和删除字符串
Output向传输缓冲区写一个字符串
每个属性都通过Get/Set函数对来获取或设置控件的属性
属性简介
CommPort
设置并返回端口号
void CMSComm::SetCommPort(short nNewValue)
short CMSComm::GetCommPort()
RThreshold
在MSComm控件设置CommEvent属性为comEvReceive并产生OnComm之前,设置并返回要接收的字符数。达到设定值则触发OnComm。
void CMSComm::SetRThreshold(short nNewValue)
short CMSComm::GetRThreshold()
CTSHolding
确定是否可通过查询CTS线的状态发送数据。硬件握手的手工查询
void CMSComm::SetCTSHolding(BOOL bNewValue)
BOOL CMSComm::GetCTSHolding()
SThreshold
在MSComm控件设置CommEvent属性为comEvSend并产生OnComm之前,设置并返回传输缓冲区中允许的最小字符数。
void CMSComm::SetSThreshold(short nNewValue)
short CMSComm::GetSTreshold()
Handshaking
设置或返回硬件握手状态,使用内部通信协议
void CMSComm::SetHandshaking(long nNewValue)
long CMSComm::GetHandshaking()
InputMode
设置或返回传输数据的类型
void CMSComm::SetInputMode(long nNewValue)
long CMSComm::GetInputMode()
DSRHolding
确定DSR线的状态。
void CMSComm::SetDSRHolding(BOOL bNewValue)
BOOL CMSComm::GetDSRHolding()
Settings
设置并返回波特率、奇偶校验、数据位、停止位参数
void CMSComm::SetSettings(LPCTSTR lpszNewValue)
CString CMSComm::GetSettings()
"BBBB,P,D,S"BBBB为波特率,P为奇偶校验,D为数据位数,S为停止位数
缺省值为"9600,N,8,1"
InputLen
设置并返回Input属性从接收缓冲区读取的字符数
void CMSComm::SetInputLen(short nNewValue)
short CMSComm::GetInputLen()
缺省值为0,使用Input将使MSComm控件读取接收缓冲区中的全部的内容。在使用Input前,可检查InBufferCount属性来确定缓冲区中是否已有需要数目的字符。此属性在从输出格式为定长数据的机器读取数据时非常有用。
InBufferSize
设置或返回输入缓冲区的大小
void CMSComm::SetInBufferSize(short nNewValue)
short CMSComm::GetInBufferSize()
默认为1024Byte
InBufferCount
设置或返回输入缓冲区内等待读取的字节个数
void CMSComm::SetInBufferCount(short nNewValue)
short CMSComm::GetInBufferCount()
当设置InBufferCount属性的值为0时,可以清空接收缓冲区(很有用的功能)
OutBufferSize
设置或返回发送缓冲区的大小
void CMSComm::SetOutBufferSize(short nNewValue)
short CMSComm::GetOutBufferSize()
默认为512字节。此值不能太小,否则缓冲区易溢出,但太大会不必要地占用内存。
OutBufferCount
返回发送缓冲区的字节数或者清空发送缓冲区
void CMSComm::SetOutBufferCount(short nNewValue)
short CMSComm::GetOutBufferCount()
设置值为0时清空发送缓冲区
InPut
从接收缓冲区内读出数据
VARIANT CMSComm::GetInPut()
返回为VARIANT型变量
当InPutMode为0时,检取数据为文本方式,变量中含有String型数据类型,当InPutMode为1时,检取数据为二进制方式,变量中含Byte数组型数据。
OutPut
向发送缓冲区写数据,或返回发送缓冲区当前的数据
void CMSComm::SetOutPut(const VARIANT&newValue)
VARIANT CMSComm::GetOutPut()
PortOpen
用于打开或关闭串口,或返回串口的开、关状态
void CMSComm::SetPortOpen(BOOL bNewValue)
BOOL CMSComm::GetPortOpen()
TURE打开串口,FALSE关闭串口,程序终止后,MSComm控件自动关闭串口
EOFEnable
确定在输入过程中MSComm控件是否寻找文件结尾EOF字符,如果找到EOF字符,将停止输入并激活OnComm事件,此时CommEvent属性设置为ComEvEOF
void CMSComm::SetEOFEnable(BOOL bNewValue)
BOOL CMSComm::GetEOFEnable()
DTREnalbe
设置或返回DTR线状态。
void CMSComm::SetDTREnable(BOOL bNewValue)
BOOL CMSComm::GetDTREnable()
RTSEnable
确定是否使RTS线有效
void CMSComm::SetRTSEnable(BOOL bNewValue)
BOOL CMSComm::GetRTSEnable()
Break
设置或清除中断信号的状态
void CMSComm::SetBreak(BOOL bNewValue)
BOOL CMSComm::GetBreak()
CommID
返回一个说明通信设备的句柄。
void CMSComm::SetCommID(long nNewValue)
long CMSComm::GetCommID()
该值与WindowsAPICreateFile函数返回的值一致。
NullDiscard
确定Null字符是否从端口传送到接收缓冲区
void CMSComm::SetNullDiscard(BOOL bNewValue)
BOOL CMSComm::GetNullDiscard()
OnComm事件和CommEvent属性
设置或返回无论何时当CommEvent属性的值变化时,就产生OnComm事件,标志发生了一个通信事件或一个错误。CommEvent属性值反映错误或者事件类型,通常在程序中的事件消息处理函数中对CommEvent事件进行处理。
void CMSComm::SetCommEvent(short nNewValue)
short CMSComm::GetCommEvent()
通常由函数GetCommEvent()得到当前事件值,再进行相应的处理。
- 博客分类:
- 串口通信
2添加MSComm控件ID的控制变量或对象
3对串口进行初始化,设置MSComm控件的属性
4添加串口事件的消息处理函数OnComm()函数,在函数中根据应用需要,编写数据处理代码
5编写串口发送等其他代码
6关闭串口
个MSComm控件只能对应一个串口,如果应用程序需要访问多个串口,必须使用多个MSComm控件。
处理通信问题的方式:事件驱动方式(与中断原理类似,触发一个事件处理函数),查询方式。
MSComm控件的重要属性中的一部分
CommPort设置并返回通信端口号
Settings以字符串的形式设置并返回波特率、奇偶校验、数据位、停止位。
PortOpen设置并返回通信端口的状态。可以用来打开和关闭端口
Input从接受缓冲区返回和删除字符串
Output向传输缓冲区写一个字符串
每个属性都通过Get/Set函数对来获取或设置控件的属性
属性简介
CommPort
设置并返回端口号
void CMSComm::SetCommPort(short nNewValue)
short CMSComm::GetCommPort()
RThreshold
在MSComm控件设置CommEvent属性为comEvReceive并产生OnComm之前,设置并返回要接收的字符数。达到设定值则触发OnComm。
void CMSComm::SetRThreshold(short nNewValue)
short CMSComm::GetRThreshold()
CTSHolding
确定是否可通过查询CTS线的状态发送数据。硬件握手的手工查询
void CMSComm::SetCTSHolding(BOOL bNewValue)
BOOL CMSComm::GetCTSHolding()
SThreshold
在MSComm控件设置CommEvent属性为comEvSend并产生OnComm之前,设置并返回传输缓冲区中允许的最小字符数。
void CMSComm::SetSThreshold(short nNewValue)
short CMSComm::GetSTreshold()
Handshaking
设置或返回硬件握手状态,使用内部通信协议
void CMSComm::SetHandshaking(long nNewValue)
long CMSComm::GetHandshaking()
InputMode
设置或返回传输数据的类型
void CMSComm::SetInputMode(long nNewValue)
long CMSComm::GetInputMode()
DSRHolding
确定DSR线的状态。
void CMSComm::SetDSRHolding(BOOL bNewValue)
BOOL CMSComm::GetDSRHolding()
Settings
设置并返回波特率、奇偶校验、数据位、停止位参数
void CMSComm::SetSettings(LPCTSTR lpszNewValue)
CString CMSComm::GetSettings()
"BBBB,P,D,S"BBBB为波特率,P为奇偶校验,D为数据位数,S为停止位数
缺省值为"9600,N,8,1"
InputLen
设置并返回Input属性从接收缓冲区读取的字符数
void CMSComm::SetInputLen(short nNewValue)
short CMSComm::GetInputLen()
缺省值为0,使用Input将使MSComm控件读取接收缓冲区中的全部的内容。在使用Input前,可检查InBufferCount属性来确定缓冲区中是否已有需要数目的字符。此属性在从输出格式为定长数据的机器读取数据时非常有用。
InBufferSize
设置或返回输入缓冲区的大小
void CMSComm::SetInBufferSize(short nNewValue)
short CMSComm::GetInBufferSize()
默认为1024Byte
InBufferCount
设置或返回输入缓冲区内等待读取的字节个数
void CMSComm::SetInBufferCount(short nNewValue)
short CMSComm::GetInBufferCount()
当设置InBufferCount属性的值为0时,可以清空接收缓冲区(很有用的功能)
OutBufferSize
设置或返回发送缓冲区的大小
void CMSComm::SetOutBufferSize(short nNewValue)
short CMSComm::GetOutBufferSize()
默认为512字节。此值不能太小,否则缓冲区易溢出,但太大会不必要地占用内存。
OutBufferCount
返回发送缓冲区的字节数或者清空发送缓冲区
void CMSComm::SetOutBufferCount(short nNewValue)
short CMSComm::GetOutBufferCount()
设置值为0时清空发送缓冲区
InPut
从接收缓冲区内读出数据
VARIANT CMSComm::GetInPut()
返回为VARIANT型变量
当InPutMode为0时,检取数据为文本方式,变量中含有String型数据类型,当InPutMode为1时,检取数据为二进制方式,变量中含Byte数组型数据。
OutPut
向发送缓冲区写数据,或返回发送缓冲区当前的数据
void CMSComm::SetOutPut(const VARIANT&newValue)
VARIANT CMSComm::GetOutPut()
PortOpen
用于打开或关闭串口,或返回串口的开、关状态
void CMSComm::SetPortOpen(BOOL bNewValue)
BOOL CMSComm::GetPortOpen()
TURE打开串口,FALSE关闭串口,程序终止后,MSComm控件自动关闭串口
EOFEnable
确定在输入过程中MSComm控件是否寻找文件结尾EOF字符,如果找到EOF字符,将停止输入并激活OnComm事件,此时CommEvent属性设置为ComEvEOF
void CMSComm::SetEOFEnable(BOOL bNewValue)
BOOL CMSComm::GetEOFEnable()
DTREnalbe
设置或返回DTR线状态。
void CMSComm::SetDTREnable(BOOL bNewValue)
BOOL CMSComm::GetDTREnable()
RTSEnable
确定是否使RTS线有效
void CMSComm::SetRTSEnable(BOOL bNewValue)
BOOL CMSComm::GetRTSEnable()
Break
设置或清除中断信号的状态
void CMSComm::SetBreak(BOOL bNewValue)
BOOL CMSComm::GetBreak()
CommID
返回一个说明通信设备的句柄。
void CMSComm::SetCommID(long nNewValue)
long CMSComm::GetCommID()
该值与WindowsAPICreateFile函数返回的值一致。
NullDiscard
确定Null字符是否从端口传送到接收缓冲区
void CMSComm::SetNullDiscard(BOOL bNewValue)
BOOL CMSComm::GetNullDiscard()
OnComm事件和CommEvent属性
设置或返回无论何时当CommEvent属性的值变化时,就产生OnComm事件,标志发生了一个通信事件或一个错误。CommEvent属性值反映错误或者事件类型,通常在程序中的事件消息处理函数中对CommEvent事件进行处理。
void CMSComm::SetCommEvent(short nNewValue)
short CMSComm::GetCommEvent()
通常由函数GetCommEvent()得到当前事件值,再进行相应的处理。
关于VB串口控件MSCOMM的问题?
mscomm进行串口通信
请问如何加载加载mscomm串口通信控件?
关于VB中MSCOMM控件的问题
vb 关于mscomm控件的问题
vb中MSComm控件的问题
《MSComm通信编程技术》的下载
《MSComm通信编程技术》的下载
关于VB中MSComm控件的OnComm事件的困惑?
如何用vb的mscomm控件发射红外信号?
mscomm控件中奇偶校验位是不是自动加的
MScomm控件 问题急急急
在不调用VC++的MsComm组件的情况下,如何实时地接收串口数据?
用vb进行串口编程,接收到的都是乱字符?
常用的串口通讯控件有那些?
我想问个vb的mscomm控件的问题。最好有人用过温度采集模块。
用VB的mscomm控件如何实现局域网内的文件复制
如何用MSComm进行通信
请VB高手帮忙!MSCOMM控件的SETTINGS中可以用变量吗?
在窗体中如何添加MSComm控件
有关Mscomm控件 高手指点 谢
asp.net中能用MSComm控件吗?
MSComm控件能不能对USB端口操作?
VB 的MSComm是什么