ImageVerifierCode 换一换
格式:DOC , 页数:39 ,大小:1.03MB ,
资源ID:1319283      下载积分:20 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-1319283.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(纯业余者用VCMFC编写串口调试助手.DOC)为本站会员(天***)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

纯业余者用VCMFC编写串口调试助手.DOC

1、第 1 页 共 39 页纯业余者用 VC(MFC)编写串口调试助手1. 序毕业到现在,转眼就做射频开发 10 年了,一直从事直放站、干放等通信边缘行业,从低噪放、锁相源、选频、功放到整机,射频就那么点东西,而且越来越集成化,软件无线电是必然趋势。做射频从业面会越来越窄,我知道所有人都会说,当你成为专家的时候,一切就都不是问题,可有几个真正的专家,再者说,射频需要经验的积累,只有实际项目做的越多越广,经验也就积累得越多,并不是一朝一夕能达到的。前不久突然觉得,我的射频模块控制要是也是自己来编程控制多好啊!那就得学单片机编程,学习上位机编程了,可我都不会啊,要不就先来整整上位机,windows 方

2、面的。大学唯一学的编程语言是 C 语言,可根本不能理解用 C 做什么,还都还给老师 10 多年了,这怎么办?从 BASIC,C/C+,JAVA,PASCAL 搜索了一圈,还是选 C+吧,毕竟是 C语言发展而来,用 VC 环境,身边有可以请教的人。在网上转悠了很久,发现windows程序设计是必看,MFC Windows 程序设计是学 MFC 最经典的书籍。OMG,这些书啊,都是上千页的,白天都在上班,哪有时间看哦,只有先下载下来作为参考资料了。扯远了啊。这也不行那也不行,怎么办呢?干脆硬着头皮上吧,找几个实例照搬,再修修改改加深理解吧。第一个目标,自己编写个串口调试助手,掌握串口通信编程,这样

3、上位机的编写就有希望了。好了,目标定下来了。网上下载了个串口调试助手,确定基本功能:1.自动寻找串口,并自动添加到下拉框中共选择;2.有波特率、数据位、停止位、校验位的选择设置;3.串口打开控制按钮;4.发送、清除按钮;5.接收是自动实现的;6.有定时自动发送功能;7.有传送文件功能;8.有状态栏显示,指示串口状态,设置参数和发送接收显示。下面就一步步实现,本人纯业余,只是记录下来这个学习过程,请勿拍砖。开发平台 Visual C+6.0 英文版,电脑是 i7-2670Q 四核 8G 内存 1G 独显的笔记本,装的 win7 64 位旗舰版,因此 VC6 兼容不是太好,有些小毛病,不过不影响编

4、写。第 2 页 共 39 页2. 创建 MFC 项目File - New - Projects 选择 MFC AppWizard(exe),项目名称 commassist选择 OK选中 Dialog based,点击 Next 。第 3 页 共 39 页默认选项,点击 Next ,第 4 页 共 39 页继续默认选项,点击 Next ,如果选中 As a statically linked library,生产的 EXE 可直接在没装 VC 的机器上运行。可以在项目中进行更改。选择第二个 CCommassistDlg,点击 Finish第 5 页 共 39 页点击 OK。项目创建完毕,进入项目

5、。删除界面上确定和取消按钮以及静态文字。第 6 页 共 39 页3. 创建界面保存后便可以开始创建界面了。参考界面第 7 页 共 39 页仿照设计的界面,具体添加按钮或编辑框等的布局步骤就不用细说了。4. 图标修改在资源视图中选择 Icon 右键 InsertIcon 加入打开和关闭的 Icon 图标或自行绘制,如下图第 8 页 共 39 页IDR_MAINFRAME 原为 MFC 提供的图标,这里我直接改成自己的,生成 EXE 后将会显示这个图标。下面将帮助页面图标也改为自绘图标。在打开按钮旁边加入自绘的打开和关闭图标:先加入工具条中的 Picture,然后选中右键看属性,并如图将 Imag

6、e 选为默认的 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,Ty

7、pe 及 Sort 同上。右键校验位对应的 Combo Box,ID 设置为 IDC_CAL,Type 及 Sort 同上。每个下拉框要点击右边的小箭头,然后将其拉长,不然显示不出内容。第 9 页 共 39 页接收 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。发送区的十六进制发

8、送的 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。6. 开始写代码6.1. 基本思路:因为串口通信部分代码我可能用在以后的单片机上位

9、机上,因此考虑单独形成 CPP 和 H 文件,定义为 comm.cpp 和 comm.h。在 comm.cpp 中编写串口创建、打开、关闭以及串口监听线程(用于自动接收)的代码,同时加入进制转换或显示的函数,这些在 comm.h 文件中申明,在主对话框中包含 comm.h 即可。想修改按钮样式,在网上搜了一圈,结果不轻松,最后确定创建新类来实现。6.2. 创建自定义按钮类:View - Class Wizard 选择 Add Class - New,名字 MyButton,基类选择 CButton。在头文件 MyButton.h 中加入以下变量和函数定义:private:int m_Style

10、; /按钮形状(0-正常,1- 当前,2-按下, 3-锁定) bool b_InRect;/鼠标进入标志CString m_strText; /按钮文字COLORREF m_ForeColor;/文本颜色COLORREF m_MouseInColor;/鼠标进入时文本颜色COLORREF m_BackColor;/背景颜色COLORREF m_LockForeColor; /锁定按钮的文字颜色CRect m_ButRect; /按钮尺寸CFont* p_Font; /字体void DrawButton(CDC *pDC); /画正常按钮/ 接口函数public:MyButton();第 10

11、页 共 39 页void SetText(CString str); /设置文字void SetForeColor(COLORREF color);/设置文本颜色void SetBkColor(COLORREF color); /设置背景颜色void SetTextFont(int FontHight,LPCTSTR FontName); /设置字体在 MyButton.cpp 的构造函数中初始化变量:m_Style = 1; /m_Style = 0; /按钮形状风格b_InRect = false; /鼠标进入标志m_strText = _T(“); /按钮文字(使用默认文字)m_Fore

12、Color = RGB(0,0,0); /文字颜色(黑色)m_MouseInColor = RGB(0,0,255); /鼠标进入时文字颜色 (蓝色)m_BackColor = RGB(230,230,230); /m_BackColor = RGB(243,243,243); /背景色(灰白色)m_LockForeColor = GetSysColor(COLOR_GRAYTEXT);/锁定按钮的文字颜色p_Font = NULL; /字体指针用 ClassWizard 添加下列消息函数:PreSubclassWindow();DrawItem();onMouseMove();OnLButt

13、onDown();OnLButtonUp();在各函数内加入代码:void MyButton:PreSubclassWindow() / TODO: Add your specialized code here and/or call the base classModifyStyle( 0, BS_OWNERDRAW ); /设置按钮属性为自画式/PreSubclassWindow()在按钮创建前自动执行,所以我们可以在其中做一些初始工作。/这里只做了一项工作,就是为按钮设置属性为“自绘 ”式,这样,用户在添加按钮后,就不需设置“Owner draw”属性了。CButton:PreSubclassWindow();void MyButton:DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct) / TODO: Add your code to draw the specified itemCDC *pDC = CDC:FromHandle( lpDrawItemStruct-hDC );m_ButRect = lpDrawItemStruct-rcItem; /获取按钮尺寸if( m_strText.IsEmpty() )GetWindowText( m_strText ); /获取按钮文本

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。