通常在32位编译环境下,我们可以通过插入MFC串口控件(MSCOMM32.OCX)的方式来实现串口通信,但是MSCOMM32.OCX不支持64位编译环境,也就是说,在x64解决方案平台下会报错。为此,本文将利用开源CSerialPort类来教大家如何搭建一个可以在64位编译环境下完美运行的串口通信界面程序。
开发环境:VS2015 MFC平台(VS2010以上的版本在也可按照此方法进行)
主要工具:CSerialPort类
源程序下载地址:https://download.csdn.net/download/qq_27184595/11133860
文档下载地址:https://download.csdn.net/download/qq_27184595/11136115
本文用CSerialPort类下载地址:https://download.csdn.net/download/qq_27184595/11136142
首先运行VS2015,修改名称为COMx64,点击确定
点击下一步
选择基于对话框
勾选最小化(可不选)
选择Dlg类(重点)
点击完成后出现如下编程界面
删除确定和取消按钮及中间的对话框控件,下载CSerialPort类,将文件夹内的头文件和源文件复制到工程文件夹下
在解决方案中用添加现有项的方式将头文件和源文件添加到解决方案
添加两个按钮,命名为打开串口和发送数据
创建串口号和波特率下拉选项卡
添加接收数据和发送数据编辑框
在COMx64Dlg.h中包含#include "SerialPort.h"
为'打开串口'添加变量
为发送按钮和接收、发送编辑框添加变量,添加方法与打开串口按钮相同,添加成功后会生成如下public代码段
双击打开串口和发送数据,在对应的打开串口和发送数据响应函数代码段内插入自己的编写的响应函数(也可使用下载的Word文本内提供的串口连接代码),程序插入位置如图所示
打开类向导,插入如图所示消息,用于响应和接收下位机发送的数据
点击编辑代码,编辑数据接收函数(可参照程序文档内提供的数据接收程序)
开始调试,可能会出现如下错误
按照下图方式设置即可
如出现如下错误
在如下代码段位置添加‘CSerialPort m_SerialPort;’即可
生成后的上位机串口程序如图所示,此时即可手动输入串口号和波特率实现串口连接
如果想让该程序能够自动识别串口号和波特率,需在在程序初始化代码段添加初始化代码
初始化代码在Word文档中给出,请按需求自行下载,添加位置如图所示
自动打开串口后程序界面显示效果如图所示