零基础 VS2012 串口编程

本文介绍如何使用VC++在VS2012环境下搭建基于对话框的应用程序,并实现串口通信功能。主要内容包括项目的创建过程、控件的添加与配置、以及基本的代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在学习STM32单片机,然后对上位机控制硬件电路产生兴趣,于是想做个上位机程序,通过串口获取ADC数据,然后将产生的数据送入matlab中做数据处理,再通过串口发送给单片机系统。网上参考不同的编程语言建议,有VB,VC++,C#等,最后选择VC++。VC++之前没有接触过,先照着网上的帖子做一遍,参考下面的帖子:

VS2012串口助手编程C++:https://blog.youkuaiyun.com/tianyake_1/article/details/65646466

C控件MSComm编写串口通信程序:https://wenku.baidu.com/view/9e9b258c6c175f0e7cd137b6.html?from=search

第一步,熟悉VS2012

新建项目,选择MFC应用程序,名称使用MFC(建议使用跟我一样,后面的程序能更好的对应起来),然后选择安装位置。

这一步选择基于对话框的应用程序类型,至于单个文档、多个文档、基于对话框的区别如下:

单文档:记事本类程序的标准模式,有菜单栏、工具栏等,只能进行一份文档的操作,即不能同时在同一个应用程序中打开两个文件,如下图所示的记事本。

                                            单文档

多文档:WORD类或浏览器程序的标准模式,可多个窗口显示不同的信息,进行不同的任务,有多个视图环境,可同时操作多个文件。多个文件共享同一菜单栏、工具栏等,如下图所示的office word。

                                                                                           

对话框:可方便的使用控件,所见即所得的编程,没有菜单栏、工具栏等,如下图所示的串口调试助手。

 

怎样看出一个MFC应用程序是基于单文档、多文档还是对话框?

1.运行应用程序观看,对话框一般没有菜单栏、工具栏等,单文档和多文档有,另多文档可产生子窗口,会有一个childframe class

2.从源码中的类观看:

   基于对话框—>一般含以下3个类:CAboutDlg、程序名App、程序名Dlg

   基于单文档—>一般含以下4个类:CMainFrame、程序名App、程序名Doc、程序名View

   基于多文档—>一般含以下5个类:CMainFrame、CChildFrame、程序名App、程序名Doc、程序名View

点击完成按钮,完成MFC应用程序的创建,创建好的MFC应用程序如下图所示:

第一步:添加控件

将主窗口中对话框中的所有内容清空,包括“TODO:再次放置对话框控件”以及"确定"跟"取消"两个按钮控件。

PS:如果你重新打开这个项目,会发现主窗口是空的,这个时候需要双击打开资源视图的一个文件,如下图所示:

 

找到右侧"工具箱"菜单栏,添加如下几个控件:2个 Edit Control 控件,1个 Combo Box 控件,2个 Button 控件。

从 工具-->选择工具箱集-->COM控件中找到 Microsoft Communications Control 这个串口通讯控件。

然后将对话框中的各种控件的ID寄名称修改如下:

IDC_COMBO_CommSelect 属性里面的Data:COM1;COM2;COM3;COM4;COM5;COM6;COM7;COM8; // 注意使用;分隔 。如果你电脑中的COM口超过这个数字,可以在此处添加。如下图所示:

控件类添加成员变量

点击  项目-->类向导 或者  Ctrl+Shift+X 按照下面的步骤操作:

IDC_COMBO_CommSelect:(Control类型)

IDC_COMBO_CommSelect:(Value类型)

IDC_EDIT_RXDATA:(Value类型)

IDC_EDIT_TXDATA:(Value类型)

IDC_MSCOMM1:(Control类型)

至此,所有的框架都准备完成,点击编译,应该没什么错误。

接下来就是代码部分。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值