MFC上位机串口通信

对于玩各种传感器的极客来说,如何查看传感器反馈的各种数值以及做各种处理时候经常会要将数据通过各种通讯传到个人PC上,我之前用的是在同一局域网中使用web.py将树莓派采集到的数据传到我的电脑上的。今天尝试一下用MFC做一个简单的串口通信上位机。

MFC上位机串口通信_第1张图片

电脑是win10的 已经没有自带的串口了,所以我用的是usb转ttl模块。

将TX和RX短接,让他自发自收(调试)。

因为课题组是用的MFC做的开发,所以我就使用最熟悉的MFC做为上位机的开发了。

首先建立一个新工程,做一个MFC应用程序(基于对话框)。然后拖入首先是一个用于显示接受信息的编辑框一个是用于发送的编辑框。然后设置几个按钮。打开串口、发送数据、清除编辑框。最重要的是使用了com组件,如果工具箱里没有的话需要自己在工具箱项里自己勾选。

MFC上位机串口通信_第2张图片

选中Microsoft Communications Control此时对话框就出现了串口控件了

MFC上位机串口通信_第3张图片是一个电话的图标,将它拖入对话框任意位置就行。运行时是不会显示这个图标的。

然后就是对串口控件添加控制变量。我添加的是MFC上位机串口通信_第4张图片

串口的控制变量是m_crtlComm,MFC添加变量后相当于生成一个实例,使用声明的实例名就可以调用类的方法了。

串口的主要初始化及传输功能的函数如下

   m_ctrlComm.put__CommPort(3);//选择串口
    m_ctrlComm.put_InputMode(1);//二进制方式读写数据
    m_ctrlComm.put_InBufferSize(1024);//接收缓冲区大小,字节
    m_ctrlComm.put_OutBufferSize(1024);//发送缓冲区大小,字节
    m_ctrlComm.put_Settings(_T("9600,n,8,1"));//9600波特率,8个数据位,1个停止位
    m_ctrlComm.put_InputLen(0);//设置当前接收区数据长度为0,表示全部读取
    m_ctrlComm.put_RThreshold(1);//接收缓冲区有1个及1个以上字符时,将引发接收数据的OnComm
    m_ctrlComm.put_PortOpen(TRUE);//打开串口,如果打开失败,此函数会调用AfxMessageBox来显示错误信息,并返回

这里的串口号要去设备管理器上查看

MFC上位机串口通信_第5张图片

如果是win10系统的话不会有这一项的。需要首先安装usb转串口驱动。

MFC上位机串口通信_第6张图片

安装好后重启计算机就可以使用啦。

感觉重要的东西主要是MFC的一些东西,需要把界面做的好看一点,以及程序不要存在内部冲突。作为一个简单的自己用的小工具的话完全可以按照自己的风格做一个上位机,然后就是利用这些数据愉快的coding了。

 

 

 

 

 

 

你可能感兴趣的:(MFC上位机串口通信)