d035.bmp.txt

来自「Visual C++通信编程工程实例精解(附盘)」· 文本 代码 · 共 54 行

TXT
54
字号
(续)
┏━━━━━━━━┳━━━━━┳━━━━━━━┓
┃    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 + =
减小字号Ctrl + -
显示快捷键?