Chinaunix首页 | 论坛 | 博客
  • 博客访问: 114688
  • 博文数量: 29
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 242
  • 用 户 组: 普通用户
  • 注册时间: 2014-07-17 13:36
文章分类

全部博文(29)

文章存档

2015年(29)

我的朋友

分类: C/C++

2015-05-03 19:39:14

SerialPort_H.txtSerialPort_cpp.txt

一、打开串口

A、 初始化串口 InitPort

B、 开启串口线程

 

void CSimpleDemoDlg::OpenComm()

{

    //m_comm为CSerialPort,定义在CSimpleDemoDlg

    //m_com_num:串口号,如COM2,则m_com_num为2

    //BOOL CSerialPort::InitPort(CWnd* pPortOwner,  // 端口所有者

    //                     UINT  portnr,            // 端口号

    //                     UINT  baud,              // 波特率

    //                     char  parity,            // 校验位

    //                     UINT  databits,          // 数据位数

    //                     UINT  stopbits,          // 停止位

    //                     DWORD dwCommEvents,      // EV_RXCHAR需要处理的事件

    //                     UINT  writebuffersize)   //缓冲区

    if(m_comm.InitPort(this,m_com_num,9600,'n',8,1,EV_RXCHAR,1024))

    {

        //初始化成功,开启串口线程

        m_comm.StartMonitoring();

    }

}

 

二、关闭串口

 

void CSimpleDemoDlg::CloseComm()

{

    m_comm.ClosePort();

}

 

 

三、发送数据

发送数据主要通过WriteToPort函数

void        WriteToPort(char* string);

void        WriteToPort(char* string,int n);//add by mrlong 2007-12-25

void        WriteToPort(LPCTSTR string);//add by mrlong 2007-12-25

void        WriteToPort(LPCTSTR string,int n);//add by mrlong 2007-12-2

void     WriteToPort(BYTE* Buffer, int n);// add by mrlong

上述为发送数据WriteToPort的函数声明。

 

四、接收数据

接收数据应该算是4个操作中较为复杂的。

1、  在使用者类中声明数据接收处理函数,相当于Qt中的槽处理函数。

LONG OnComm(WPARAM ch,LPARAM port);

 

2、在使用者类的源文件中进行消息映射

BEGIN_MESSAGE_MAP(CSimpleDemoDlg, CDialogEx)

    …mfc自动生成的部分代码

    ON_MESSAGE(WM_COMM_RXCHAR,OnComm)

END_MESSAGE_MAP()

 

3、对OnComm进行定义

 

 

LONG CSimpleDemoDlg::OnComm(WPARAM ch,LPARAM port)

{

    //对ch进行操作,ch转换成char类型,为得到的数据

    return 0;

}

 

 

阅读(5565) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~