📄 d047.bmp.txt
字号:
volatile HANDLE m_hCom;
int m_nBaud;
int m_nDataBits;
int m_nParity;
CString m_strPort;
int m_nStopBits;
int m_nFlowCtrl;
BOOL m_bEcho;
BOOL m_bNewLine;
//串口句柄
//波特率
||售芷瞳
,/校验位
//串口号
||停止谴
//流控制选项
/是否在本地回显
,,是否自动换行
上面有些变量是用volatile关键字声明的,这是为下面建立辅助线程准备的。当两个线
程都要用到某一个变量且该变量值会改变时,应该用volatile声明,该关键字的作用是防止
优化编译器把变量从内存装入CPU寄存器中。如果变量被装入寄存器,那么两个线程有可
能一个使用内存中的变量,另一个使用寄存器中的变量,这会造成程序的错误执行。
成员m_bConnected用来表明当前是否存在一个通信连接。m_hTermWnd用来保存视图
的窗口句柄。m_hPostMsgEvent事件对象用于WM__ COMMNOTIFY消息的允许和禁止。
m_pThread用来指向AfxBeginThread创建的CWinThread对象,以便对线程进行控利。
OVERLAPPED结构m_osRead和m_osWrite用于串口的重叠读/写,程序应该为它们的hEvent
成员创建事件句柄。
然后,为3个菜单命令函数添加相应的代码:
,/串口连接
void CTermDoc::OnCommConnect0
{
if( !OpenConnection0)
AfxMessageBox(”无法建立串口连接”);
)
,/断开串口连接
void CTermDoc::OnCommDisconnect0
{
CloseConnection();
}
void CTermDoc::OnCommSettings0
{
CSetupDlg dlg;
CString str;
dlg.m_bConnected = m_bConnected;
dlg.m_strPort = m_strPort;
str.Format("%d", m_nBaud);
dlg.m_strBaud = str;
str.Format(" % d", m_nDataBits);
dlg.m_strDatabits = str;
47
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -