- 1、本文档共29页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
VC串口通信实例
12. 4 一个通信演示程序
为了使读者更好地掌握本章的概念,这里举一个具体实例来说明问题。如图12.1所示,例子程序名为Terminal,是一个简单的TTY终端仿真程序。读者可以用该程序打开一个串行口,该程序会把用户的键盘输入发送给串行口,并把从串口接收到的字符显示在视图中。用户通过选择File-Connect命令来打开串行口,选择File-Disconnect命令则关闭串行口。
图12.1 Terminal终端仿真程序
当用户选择File-Settings...命令时,会弹出一个Communication settings对话框,如图12.2所示。该对话框主要用来设置串行口,包括端口、波特率、每字节位数、校验、停止位数和流控制。
图12.2 Communication settings对话框
通过该对话框也可以设置TTY终端仿真的属性,如果选择New Line(自动换行),那么每当从串口读到回车符(‘\r’)时,视图中的正文就会换行,否则,只有在读到换行符(‘\n’)时才会换行。如果选择Local echo(本地回显),那么发送的字符会在视图中显示出来。
终端仿真程序的特点是数据的传输没有规律。因为键盘输入速度有限,所以发送的数据量较小,但接收的数据源是不确定的,所以有可能会有大量数据高速涌入的情况发生。根据Terminal的这些特性,我们在程序中创建了一个辅助工作者线程专门来监视串行口的输入。由于写入串行口的数据量不大,不会太费时,所以在主线程中完成写端口的任务是可以的,不必另外创建线程。
现在就让我们开始工作。请读者按下面几步进行:
用AppWizard建立一个名为Terminal的MFC应用程序。在MFC AppWizard对话框的第1步选择Single document,在第4步去掉Docking toolbar的选择,在第6步把CTerminalView的基类改为CEditView。
在Terminal工程的资源视图中打开IDR_MAINFRAME菜单资源。去掉Edit菜单和View菜单,并去掉File菜单中除Exit以外的所有菜单项。然后在File菜单中加入三个菜单项,如表12.5所示。
表12.5 新菜单项
标题
ID
Settings...
ID_FILE_SETTINGS
Connect
ID_FILE_CONNECT
Disconnect
ID_FILE_DISCONNECT
用ClassWizard为CTerminalDoc类创建三个与上表菜单消息对应的命令处理函数,使用缺省的函数名。为ID_FILE_CONNECT和ID_FILE_DISCONNECT命令创建命令更新处理函数。另外,用ClassWizard为该类加入CanCloseFrame成员函数。
用ClassWizard为CTerminalView类创建OnChar函数,该函数用来把用户键入的字符向串行口输出。
新建一个对话框模板资源,令其ID为IDD_COMSETTINGS。请按图12.2和表12.6设计对话框模板。
表12.6 通信设置对话框中的主要控件
控件
ID
属性设置
Base options组框
缺省
标题为Base options
Port组合框
IDC_PORT
Drop List,不选Sort,初始列表为COM1、COM2、COM3、COM4
Baud rate组合框
IDC_BAUD
Drop List,不选Sort,初始列表为300、600、1200、2400、9600、14400、19200、38400、57600
Data bits组合框
IDC_DATABITS
Drop List,不选Sort,初列表为5、6、7、8
Parity组合框
IDC_PARITY
Drop List,不选Sort,初列表为None、Even、Odd
Stop bits组合框
IDC_STOPBITS
Drop List,不选Sort,初列表为1、1.5、2
Flow control组框
缺省
标题为Flow control
None单选按钮
IDC_FLOWCTRL
标题为None,选择Group属性
RTS/CTS单选按钮
缺省
标题为RTS/CTS
XON/XOFF单选按钮
缺省
标题为XON/XOFF
TTY options组框
缺省
标题为TTY options
New line检查框
IDC_NEWLINE
标题为New line
Local echo检查框
IDC_ECHO
标题为Local echo
打开ClassWizard,为IDD_COMSETTINGS模板创建一个名
您可能关注的文档
- t50全自动电位滴定仪使用维护与校准标准操作规程.doc
- TC11-WG3-2011-006-YDT 16071 数字移动终端图像及视频传输特性技术要求和测试方法-照相摄像设备_v30.doc
- TD-LTE技术浅析.doc
- TD-SCDMARAN系统:RAN高层信令异常流程学员手册.doc
- TD-SCDMA与WCDMA和GSM比较.ppt
- TD-SCDMA文献译文TD-SCDMA 操作和网络中的构想.doc
- TD-SCDMA典型场景覆盖解决方案v12.doc
- TD-SCDMA移动通信技术的发展与未来演进论文.doc
- TD_LTE电力无线宽带专网技术应用研究.doc
- TD业务倒流优化介绍.pptx
- snsway-LDS10A_10B_30A_30B_100A_100B_说明书手册中文.pdf
- Fisher_m97用户操作说明书手册.pdf
- 佳能Canon-EF-16-35mm-f-2.8L-III-USM-Lens相机镜头用户说明书手册.pdf
- 涉爆粉尘除尘系统问题解析--赵丹力.pptx
- (周捍东)木材加工产业涉尘防爆、除尘与节能协效-南林.pdf
- BIG DAISHOWA_LEVEL MASTER LVM-01_用户说明书手册_EN.pdf
- Trimble TS635_用户操作指南_zh.pdf
- Casio fx-5800_operation 用户说明书手册操作说明书手册_zh.pdf
- 防爆设备技术要求—相关标准与测试方法.pdf
- 佳能Canon-EF-200-400mm-f-4-L-IS-USM-Extender-1.4x-Lens相机镜头用户说明书手册.pdf
文档评论(0)