📄 d035.bmp.txt
字号:
(续)
┏━━━━━━━━┳━━━━━┳━━━━━━━┓
┃ ControlIDs ┃ Type ┃ Member ┃
┣━━━━━━━━╋━━━━━╋━━━━━━━┫
┃IDC_SEND_COUNT ┃ mt ┃m_nSendCount ┃
┣━━━━━━━━╋━━━━━╋━━━━━━━┫
┃IDC_RECV_COUNT ┃ int ┃ m_nRecvCount ┃
┣━━━━━━━━╋━━━━━╋━━━━━━━┫
┃IDC_MSCOMM ┃ CMSComm ┃ m_COM ┃
┗━━━━━━━━┻━━━━━┻━━━━━━━┛
(2)初始化串口
按照图2-5所示,往工程中添加MSComm控件后,打开“MFC ClassWizard”一“Member
Variables”页,如图2-6所示,为控件IDC_MSCOMM添
加控制变量m_COM,通过上述操作,ClassWizard自动
在SerialCommDlg.h中加入了#include”mscomm.h”语句。
同时工程中增加了CMSComm类,如图2-7。
下面在CSerialCommDlg::OnhutDialog0函数中写入
对串口的初始化语句,并对其进行设置。核心代码如下,
无关代码将被“……”省略:
事件
BOOL CSerialCommDlg::OnInitDialog0
{
if(m_COM.GetPortOpen0)
m_COM.SetPortOpen(FALSE);
募蓬固SeriaIComm classes
疆●肖CAboutOlg
蕊唧曩程囊飘■■
童-瑶CSeriaICommApp
霉—唣CSeriaICommDlg
疆豳Globals
图2-7工程的类
m_COM.SetCommPon(l);,/i走择coml
if(!m_COM.GetPortOpen(》
{
m_COM.SetPortOpen(TRUE);//打开串口
m_szStatus=”打开”:
}
else
{
AfxMessageBox("cannot open serial port");
)
m_COM.SetSettings( "9600,n,8,1");胸支特率为9600bit/s,无校验,8个数据位,1个停止位
m_COM.SetlnputMode(l); //1:表示以二进制方式检取数据
m_COM.SetRThreshold(l);
,/参数1表示每当串口接收缓冲区中有多于或等于1个字符时,将引发一个接收数据的OnComm
m_COM.SetInputLen(0); //设置当前接收区数据长度为0
m_COM.Getlnput(); ,/先预读缓冲区,以清除残留数据
if(m_COM.GetPortOpen(》
{
GetDlgltem(IDC_OPEN_CLOSE)->S etWindowText(”关闭串口”);
l
retum TRUE; //retum TRUE unless you set the focus to a control
35
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -