- 1、本文档共37页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
VC(MFC)编写串口调试助手.
VC(MFC)编写串口调试助手
序
确定基本功能:
1.自动寻找串口,并自动添加到下拉框中共选择;
2.有波特率、数据位、停止位、校验位的选择设置;
3.串口打开控制按钮;
4.发送、清除按钮;
5.接收是自动实现的;
6.有定时自动发送功能;
7.有传送文件功能;
8.有状态栏显示,指示串口状态,设置参数和发送接收显示。
下面就一步步实现,本人纯业余,只是记录下来这个学习过程,请勿拍砖。
?开发平台Visual C++6.0英文版,电脑是i7-2670Q四核8G内存1G独显的笔记本,装的win7 64位旗舰版,因此VC6兼容不是太好,有些小毛病,不过不影响编写。commassist
选择OK
选中Dialog based,点击Next 。
默认选项,点击Next ,
继续默认选项,点击Next ,如果选中As a statically linked library,生产的EXE可直接在没装VC的机器上运行。可以在项目中进行更改。
选择第二个CCommassistDlg,点击Finish
点击OK。项目创建完毕,进入项目。
删除界面上确定和取消按钮以及静态文字。
创建界面
保存后便可以开始创建界面了。
参考界面
仿照设计的界面,具体添加按钮或编辑框等的布局步骤就不用细说了。
图标修改
在资源视图中选择Icon右键InsertIcon加入打开和关闭的Icon图标或自行绘制,如下图
IDR_MAINFRAME原为MFC提供的图标,这里我直接改成自己的,生成EXE后将会显示这个图标。下面将帮助页面图标也改为自绘图标。
在打开按钮旁边加入自绘的打开和关闭图标:先加入工具条中的Picture,然后选中右键看属性,并如图将Image选为默认的IDI_ICON_CLOSE。如下图
基本设置
下面对各个按钮及编辑框设置进行描述
右键串口对应的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同上。
每个下拉框要点击右边的小箭头,然后将其拉长,不然显示不出内容。
接收EDIT框ID设置为IDC_EDIT_RX。
发送EDIT框ID设置为IDC_EDIT_TX。
自动发送时间间隔的EDIT框ID设置为IDC_EDIT_TIMER。
选择文件后面的EDIT框ID设置为IDC_EDIT_FILEPATH。
接收区的十六进制显示的Check Box复选框ID设置为IDC_CHECK_HEXRX。
发送区的十六进制发送的Check Box复选框ID设置为IDC_CHECK_HEXTX。
按钮“打开串口”ID设置为IDC_COMCONTROL。
按钮“清空显示区”ID设置为IDC_BTN_CLRRX。
按钮“手动发送”ID设置为IDC_BTN_HANDSEND。
按钮“清空发送区”ID设置为IDC_BTN_CLRTX。
按钮“自动发送”ID设置为IDC_BTN_AUTOSEND。
按钮“选择文件”ID设置为IDC_BTN_SELCTFILE。
按钮“发送文件”ID设置为IDC_BTN_SENDFILE。
开始写代码
基本思路:
因为串口通信部分代码我可能用在以后的单片机上位机上,因此考虑单独形成CPP和H文件,定义为comm.cpp和comm.h。在comm.cpp中编写串口创建、打开、关闭以及串口监听线程(用于自动接收)的代码,同时加入进制转换或显示的函数,这些在comm.h文件中申明,在主对话框中包含comm.h即可。
想修改按钮样式,在网上搜了一圈,结果不轻松,最后确定创建新类来实现。
创建自定义按钮类:
View - Class Wizard选择Add Class - New,名字MyButton,基类选择CButton。
在头文件 MyButton.h 中加入以下变量和函数定义:
private:
int m_Style; //按钮形状(0-正常,1-当前,2-按下,3-锁定)
bool b_InRect; //鼠标进入标志
CString m_strText; //按钮文字
COLORREF m_ForeColor;//文本颜色
COLORREF m_MouseInColor;//鼠
文档评论(0)