MFC中CnComm串口类移植方法(小白篇)

本文介绍了在MFC中如何移植CnComm串口类,以解决使用MSCOMM控件带来的注册问题。文章详细阐述了从添加头文件、设置串口对象、设置串口模式、传递窗口句柄、设置串口参数、添加消息映射到编写串口收发函数的每一步骤,适合MFC初学者参考。
摘要由CSDN通过智能技术生成

最近在学习MFC编写串口,首先使用了MSCOMM控件来编写,简单好用,但是它有一个缺点就是当它发布的时候,需要相应的计算机也要进行MSCOMM的注册,串口助手是一个小软件,使用前还要注册,这对于用户来说是非常麻烦的。所以放弃了MSCOMM控件;接着又使用CSerialPort这个串口类来编写,移植完了之后发现一个奇怪的问题,我使用单片机通过CP2102跟电脑通信,这个类做出来的串口助手竟然不能发送和接收数据!!!使用其他串口助手却没有这个问题,这让我很困惑,以为是我移植出错了,但是我下载别人使用这个CSerialPort这个类写出来的串口助手,也真的发送和接收不了我板子上面CP2102的数据。最后我只能放弃这个很经典的类。

接下来我就找到了CnComm这个类,虽然这个类提供了历程,但是对于刚刚学习它的我来说,还是很难找到移植参考,而在网上找了很多移植资料,都是不完整的,会出现问题的。所以这里自己整理了一下移植方式,给大家做个参考,同时也整理一下自己学习到的知识。


步骤1:

         添加CnComm.h到工程目录中。然后声明一个串口对象为主窗口类的成员(私有成员和共有成员),添加代码如下:

         CnComm m_Cncomm;         //串口声明

         其中成员名字随便取。

步骤2:

         在主窗口类的构造函数中设置Cncomm类的使用模式,在主窗口类的构造函数中添加代码如下:

m_Cncomm.SetOption(m_Cncomm.GetOption() |CnComm::EN_RX_BUFFER); //设置模式

步骤3:

         将主窗口句柄给串口类,因为串口需要发送到主窗口中显示需要句柄。在主窗口类的OnInitDialog()中添加代码如下:

         m_Cncomm.SetWnd(this->m_hWnd);

步骤4:

         在主窗口类中添加串口设置成员函数。(这个步骤也可以省略,省略的话,在使用CnComm类的Open()函数的时候,就默认设置为波特率9600,1位停止位,8位数据位,无检验位)。成员函数的代码参考如下:

         BOOL CcommDlg::CommSetState()

其中m_portBaund,m_portByteSize,m_portStopByte,m_portParity就是你要设置的值。

步骤5:

         在主窗口类中添加串口接收消息映射。

1)        首先窗口类中添加消息函数声明,代码如下:

         afx_msg LRESULT OnCommRxchar(WPARAM wParam,LPARAM lParam);

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值