串口编程中SerialPort类介绍以及应用
SerialPort类的源代码已经放在下面,SerialPort类是由Remon Spekreijse提供的免费串口类。
CSerialPort支持线连接的串口编程,而且是基于多线程的,工作流程:
1.设置串口参数。
函数原型:
BOOL CSerialPort::InitPort(CWnd* pPortOwner, // the owner (CWnd) of the port (receives message) UINT portnr, // portnumber (1..4) UINT baud, // baudrate char parity, // parity UINT databits, // databits UINT stopbits, // stopbits DWORD dwCommEvents, // EV_RXCHAR, EV_CTS etc UINT writebuffersize) // size to the writebuffer |
2.串口监测线程。
BOOL CSerialPort::StartMonitoring() BOOL CSerialPort::RestartMonitoring() BOOL CSerialPort::StopMonitoring() void CSerialPort::WriteChar(CSerialPort* port) void CSerialPort::ReceiveChar(CSerialPort* port, COMSTAT comstat) void CSerialPort::WriteToPort(char* string) |
3.监测线程接收事件信息,再进行消息处理即可。
SerialPort类的应用
基于对话框的串口程序开发:
1.将SerialPort类添加进工程;
2.进行消息的映射;
(注意:在SerialPort类的头文件中的:
#define WM_COMM_RXCHAR WM_USER+7 然后在CPP中添加消息处理函数,本例中为OnComm。 //m_strEditReceiveMsg 为EDIT控件(接收框)的变量。 |
3.实现串口的初始化,打开/关闭串口按钮的响应函数,最后是发送信息按钮的函数实现。
void CTestDlg::OnButtonOpen() void CTestDlg::OnButtonClose() void CTestDlg::OnButtonSend() |