纯业余者用 VC(MFC)编写串口调试助手
1. 序
毕业到现在,转眼就做射频开发 10 年了,一直从事直放站、干放等通信边缘行业,
从低噪放、锁相源、选频、功放到整机,射频就那么点东西,而且越来越集成化,软件无线
电是必然趋势。做射频从业面会越来越窄,我知道所有人都会说,当你成为专家的时候,一
切就都不是问题,可有几个真正的专家,再者说,射频需要经验的积累,只有实际项目做的
越多越广,经验也就积累得越多,并不是一朝一夕能达到的。
前不久突然觉得,我的射频模块控制要是也是自己来编程控制多好啊!那就得学单片
机编程,学习上位机编程了,可我都不会啊,要不就先来整整上位机,windows 方面的。
大学唯一学的编程语言是 C 语言,可根本不能理解用 C 做什么,还都还给老师 10 多年了,
这怎么办?从 BASIC,C/C++,JAVA,PASCAL 搜索了一圈,还是选 C++吧,毕竟是 C
语言发展而来,用 VC 环境,身边有可以请教的人。在网上转悠了很久,发现《windows
程序设计》是必看,《MFC Windows 程序设计》是学 MFC 最经典的书籍。OMG,这些书
啊,都是上千页的,白天都在上班,哪有时间看哦,只有先下载下来作为参考资料了。
扯远了啊。这也不行那也不行,怎么办呢?干脆硬着头皮上吧,找几个实例照搬,再
修修改改加深理解吧。
第一个目标,自己编写个串口调试助手,掌握串口通信编程,这样上位机的编写就有
希望了。
好了,目标定下来了。网上下载了个串口调试助手,确定基本功能:
1.自动寻找串口,并自动添加到下拉框中共选择;
2.有波特率、数据位、停止位、校验位的选择设置;
3.串口打开控制按钮;
4.发送、清除按钮;
5.接收是自动实现的;
6.有定时自动发送功能;
7.有传送文件功能;
8.有状态栏显示,指示串口状态,设置参数和发送接收显示。
下面就一步步实现,本人纯业余,只是记录下来这个学习过程,请勿拍砖。
开发平 台 Visual C++6.0 英文版,电脑是 i7-2670Q 四核 8G 内存 1G 独显的笔记本,
装的 win7 64 位旗舰版,因此 VC6 兼容不是太好,有些小毛病,不过不影响编写。
第 1 页 共 39 页
2. 创建 MFC 项目
File -> New -> Projects 选择 MFC AppWizard(exe),项目名称 commassist
选择 OK
选中 Dialog based,点击 Next> 。
第 2 页 共 39 页
默认选项,点击 Next> ,
第 3 页 共 39 页
继续默认选项,点击 Next> ,如果选中 As a statically linked library,生产的 EXE 可直接在
没装 VC 的机器上运行。可以在项目中进行更改。
选择第二个 CCommassistDlg,点击 Finish
第 4 页 共 39 页
点击 OK。项目创建完毕,进入项目。
删除界面上确定和取消按钮以及静态文字。
第 5 页 共 39 页
3. 创建界面
保存后便可以开始创建界面了。
参考界面
第 6 页 共 39 页
仿照设计的界面,具体添加按钮或编辑框等的布局步骤就不用细说了。
4. 图标修改
在资源视图中选择 Icon 右键 InsertIcon 加入打开和关闭的 Icon 图标或自行绘制,如下图
第 7 页 共 39 页
IDR_MAINFRAME 原为 MFC 提供的图标,这里我直接改成自己的,生成 EXE 后将会显示
这个图标。下面将帮助页面图标也改为自绘图标。
在打开按钮旁边加入自绘的打开和关闭图标:先加入工具条中的 Picture,然后选中右键看
属性,并如图将 Image 选为默认的 IDI_ICON_CLOSE。如下图
5. 基本设置
下面对各个按钮及编辑框设置进行描述
右键串口对应的 Combo Box,ID 设置为 IDC_COMLIST,Type 设置为 Drop List,Sort 不选
择(我系统是 WIN7 64 位,不选中反而自动排序,至于 XP 得试试看了,以下的选择相同)。
右键波特率对应的 Combo Box,ID 设置为 IDC_BAUD,Type 及 Sort 同上。
右键数据位对应的 Combo Box,ID 设置为 IDC_BDATA,Type 及 Sort 同上。
右键停止位对应的 Combo Box,ID 设置为 IDC_BSTOP,Type 及 Sort 同上。
右键校验位对应的 Combo Box,ID 设置为 IDC_CAL,Type 及 Sort 同上。
每个下拉框要点击右边的小箭头,然后将其拉长,不然显示不出内容。
第 8 页 共 39 页