




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、西安文理学院 计算机科学系课程设计报告设计名称: 硬件课程设计 设计题目: 串口通信系统的设计与实现 学生学号:专业班级: 2008级软件工程2班 学生姓名: 王雅宁 学生成绩: 指导教师(职称): 马国峻(讲师) 课题工作时间:至 2011.6.10 说明:1、报告中的任务书、进度表由指导教师在课程设计开始前填写并发给每个学生;四、五两项(中英文摘要)由学生在完成综合设计后填写。2、学生成绩由指导教师根据学生的设计情况给出各项分值及总评成绩。3、指导教师评语一栏由指导教师就学生在整个设计期间的平时表现、设计完成情况、报告的质量及答辩情况,给出客观、全面的评价。4、所有学生必须参加课程设计的答
2、辩环节,凡不参加答辩者,其成绩一律按不及格处理。答辩小组成员应由2人及以上教师组成。5、报告正文字数一般应不少于3000字,也可由指导教师根据本门综合设计的情况另行规定。6、平时表现成绩低于6分的学生,取消答辩资格,其本项综合设计成绩按不及格处理。计算机科学系课程设计任务书学生姓 名王雅宁学 号专业班级2008级软件工程2班设计题目串口通信系统的设计与实现内容概要:需要通过两台具有RS232接口计算机的进行通信,要求:1设计并制作连接两台具有RS232接口计算机的连接线;2编写串口通信程序,使的两台具有RS232接口计算机能够相互通信,开发语言不限;文献资料:1微型计算机技术及应用. 戴梅萼.
3、清华大学出版社。2Visual C+串口通信技术详解. 李景峰等.机械工业出版社。3. 。设计要求:1、 给出连接线的设计方法;2、 制作连接线。2、 编写串口通信程序;3、 联机,调试运行工作期限:设计工作自2011年5 月30日至2011年6月 10 日止。指导教师: 马国峻 系主任: 任可明 日 期:2011 年 5 月 30 日计算机科学系课程设计进度安排表 专业: 软件工程 姓名: 王雅宁 学号:日期内 容备注5月30日 5月 31日分析题目,查阅相关资料 6月1 日 6月2 日拟定整体方案 6月3 日 6月4 日设备选择及预算 6月5 日 6月6 日网络设计与配置 6月7 日6月8
4、 日整理报告 6月9 日 6月10日答辩 月 日 月 日 月 日 月 日 月 日 月 日月 日 月日 月 日 月 日 月 日 月 日 月 日 月 日 月 日 月 日 月 日 月 日指导教师签名: 2011年5 月 30 日指导教师评语指导教师: (签字)日 期: 2011 年 月 日答辩记录及评语表学生姓名: 王雅宁 学号: 班级: 2008级软件工程2班 答辩地点: 答辩内容记录:评语答辩小组成员(签字): 2010 年 6 月 10 日成绩评定表学生姓名: 王雅宁 学号: 班级: 2008级软件工程2班类别合计分值各项分值评分标准实际得分备注平时表现1010按时参加设计指导,无违反纪律情况
5、。完成情况3020按设计任务书的要求完成了全部任务,能完整演示其设计内容,符合要求。10能对其设计内容进行详细、完整的介绍,并能就指导教师提出的问题进行正确的回答。报告质量3510报告文字通顺,内容翔实,论述充分、完整,立论正确,结构严谨合理;报告字数符合相关要求,工整规范,整齐划一。5课题背景介绍清楚,综述分析充分。5设计方案合理、可行,论证严谨,逻辑性强,具有说服力。5符号统一;图表完备、符合规范要求。5能对整个设计过程进行全面的总结,得出有价值的结论或结果。5参考文献数量在2篇以上,格式符合要求,在正文中正确引用。答辩情况2510在规定时间内能就所设计的内容进行阐述,言简意明,重点突出,
6、论点正确,条理清晰。15在规定时间内能准确、完整、流利地回答教师所提出的问题。摘 要随着通信技术和计算机网络技术的发展、Internet网的普及,计算机远程通信已渗透到国民经济的各个领域,而远程通信绝大多数采用串行通信的方式,所以了解和研究串行通信中的概念和技术有非常重要的意义。 本文主要介绍了如何利用VC+60 MSComm控件来实现PC之间的串口通信。以MFC来设计界面编制程序,同时用MSComm控件通过串口发送和接收数据,实现两台具有串口的计算机串口通信。结果表明完全可以实现具有串口的不同计算机之间的的通信联系,证明了该软件的可靠性和稳定性。关键词: 串口通信;VC+;MSCommAbs
7、tractAs the communications and computer network technologys rapid development, and the popularity of Internet networks, computer communication has penetrated into the wide areas of national economy, meanwhile the vast majority of remote communication by way of serial communication, so the study of s
8、erial communication concepts and techniques are of great significance.This article describes how to use the MSComm of VC+60 to achieve serial communication between the PCs. The software is designed by MFC, at the same time it using MSComm control to send and receive data through the serial port in o
9、rder to achieve the serial communication. The result shows that we can achieve the communication link of the two computers and also proves that reliability and stability of the softwareKeywords:VC+6.0; Serial Communication; MSComm目 录第一章 课题背景11.1 引言11.2串行通信的基本概念21.3串口的基本概念21.4 RS232标准介绍3第二章 设计简介及设计方案
10、论述52.1 串口通信原理52.2 Microsoft Communications Control控件简介62.3 串口通信基本步骤7第三章 详细设计93.1 建立工程与使用控件93.2程序界面布局103.3初始化串口103.4添加串口事件消息处理函数113.5发送数据函数133.6 RS232串口通信接线方法(三线制)133.7 串口通信中需要注意的几点143.8 RS232串口的代替品15第四章 设计结果及分析164.1 程序结果164.2 设计反思16总 结17致 谢18参考文献19第一章 课题背景1.1 引言在通信领域内,有两种数据通信方式:并行通信和串行通信。随着计算机网络化和微机
11、分级分布式应用系统的发展,通信的功能越来越重要。通信是指计算机与外界的信息传输,既包括计算机与计算机之间的传输,也包括计算机与外部设备,如终端、打印机和磁盘等设备之间的传输。 在PC 机的主板上,有一种类型的接口可能为我们所忽视,那就是RS-232C 串行接口,在微软的Windows 系统中称其为COM。我们可以通过设备管理器来查看COM 的硬件参数设置,如图1。图1 在Windows 上查看PC 串口设置迄今为止,几乎每一台PC 都包含COM。本质而言,COM 是PC 为和外界通信所提供的一种串行数据传输的接口。COM接口是指Component Object Mode接口,是微软定义的标准接
12、口。串口叫做串行接口,现在的PC机一般有两个串行口COM 1和COM 2。串行口不同于并行口之处在于它的数据和控制信息是一位接一位地传送出去的。虽然这样速度会慢一些,但传送距离较并行口更长,因此若要进行较长距离的通信时,应使用串行口。通常COM 1使用的是9针D形连接器,也称之为RS-232接口,而COM 2有的使用的是老式的DB25针连接器,也称之为RS-422接口,这种接口目前已经很少使用。作为一种物理通信的途径和设备,它和目前风靡的另一种串行接口USB 所提供的功能是一致的。不过RS-232C 显然已经开始被后起之秀USB 赶超,因为USB 的传输速率已经远远超过了RS-232C。尽管如
13、此,RS-232C 仍然具有非常广泛的应用,在相对长的一段时间里,难以被USB 等接口取代。RS-232C 接口(又称EIA RS-232C),1970 年由美国电子工业协会(EIA)联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同制定,全名是"数据终端设备(DTE)和数据通讯设备(DCE)之间串行二进制数据交换接口技术标准"。硬件原理众所周知,CPU 与存储芯片和I/O 芯片的通信是并行的(并行传输的最大位数依赖于CPU 的字长、数据总线的宽度),一种叫做UART(通用异步收发器,Universal Asynchronous Receiver/Transmitter)
14、的芯片提供了并行数据传输和RS-232C 串行数据传输方式的转换。1.2串行通信的基本概念在微型计算机中,通信(数据交换)有两种方式:串行通信和并行通信。串行通信是指计算机与I/O设备之间仅通过一条传输线交换数据,数据的各位是按顺序依次一位接一位进行传送。并行通信是指计算机与I/O设备之间通过多条传输线交换数据,数据的各位同时进行传送。应该理解所谓的并行和串行,仅是指I/O接口与I/O设备之间数据交换(通信)是并行或串行。无论怎样CPU与I/O接口之间数据交换总是并行。二者比较:串行通信的速度慢,但使用的传输设备成本低,可利用现有的通信手段和通信设备,适合于计算机的远程通信;并行通信的速度快,
15、但使用的传输设备成本高,适合于近距离的数据传送。1异步串行通信所谓异步通信,是指数据传送以字符为单位,字符与字符间的传送是完全异步的,位与位之间的传送基本上是同步的。异步串行通信的特点可以概括为:以字符为单位传送信息。相邻两字符间的间隔是任意长。接收时钟和发送时钟只要相近就可以。异步方式特点简单的说就是:字符间异步,字符内部各位同步。2同步串行通信所谓同步通信,是指数据传送是以数据块(一组字符)为单位,字符与字符之间、字符内部的位与位之间都同步。同步串行通信的特点可以概括为: 以数据块为单位传送信息。 在一个数据块(信息帧)内,字符与字符间无间隔。接收时钟与发送进钟严格同步。3.波特率、波特率
16、因子、位周期波特率是指单位时间传输二进制数据的位数,其单位为位/秒(B/S)或波特。它是一个用以衡量数据传送速率的量。一般串行异步通行的传送速度为5019200波特,串行同步通信的传送速度可达500千波特。波特率因子是指时钟脉冲频率与波特率的比。位周期Td是指每个数据位传送所需要的时间,它与波特率的关系是:Td=1/波特率。它用以反映连续二次采样数据之间的间隔时间1.3串口的基本概念串口是计算机上一种非常通用设备通信的协议(不要与通用串行总线Universal Serial Bus或者USB混淆)。大多数计算机包含两个基于RS232的串口。串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼
17、容的设备也带有RS-232口。同时,串口通信协议也可以用于获取远程采集设备的数据。 串口通信的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。它很简单并且能够实现远距离通信。比如IEEE488定义并行通行状态时,规定设备线总常不得超过20米,并且任意两个设备间的长度不得超过2米;而对于串口而言,长度可达1200米。 典型地,串口用于ASCII码字符的传输。通信使用3根线完成:(1)地线,(2)发送,(3)接收。由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。其他线用于握手,
18、但是不是必须的。串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。对于两个进行通行的端口,这些参数必须匹配: a,波特率:这是一个衡量通信速度的参数。它表示每秒钟传送的bit的个数。例如300波特表示每秒钟发送300个bit。当我们提到时钟周期时,我们就是指波特率例如如果协议需要4800波特率,那么时钟是4800Hz。这意味着串口通信在数据线上的采样率为4800Hz。通常电话线的波特率为14400,28800和36600。波特率可以远远大于这些值,但是波特率和距离成反比。高波特率常常用于放置的很近的仪器间的通信,典型的例子就是GPIB设备的通信。 b,数据位:这是衡量通信中实际数据位的参
19、数。当计算机发送一个信息包,实际的数据不会是8位的,标准的值是5、7和8位。如何设置取决于你想传送的信息。比如,标准的ASCII码是0127(7位)。扩展的ASCII码是0255(8位)。如果数据使用简单的文本(标准 ASCII码),那么每个数据包使用7位数据。每个包是指一个字节,包括开始/停止位,数据位和奇偶校验位。由于实际数据位取决于通信协议的选取,术语“包”指任何通信的情况。 c,停止位:用于表示单个包的最后一位。典型的值为1,1.5和2位。由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。因此停止位不仅仅是表示传输的结束,并且提供计算
20、机校正时钟同步的机会。适用于停止位的位数越多,不同时钟同步的容忍程度越大,但是数据传输率同时也越慢。 d,奇偶校验位:在串口通信中一种简单的检错方式。有四种检错方式:偶、奇、高和低。当然没有校验位也是可以的。对于偶和奇校验的情况,串口会设置校验位(数据位后面的一位),用一个值确保传输的数据有偶个或者奇个逻辑高位。例如,如果数据是011,那么对于偶校验,校验位为0,保证逻辑高的位数是偶数个。如果是奇校验,校验位位1,这样就有3个逻辑高位。高位和低位不真正的检查数据,简单置位逻辑高或者逻辑低校验。这样使得接收设备能够知道一个位的状态,有机会判断是否有噪声干扰了通信或者是否传输和接收数据是否不同步1
21、.4 RS232标准介绍RS-232-C接口(又称 EIA RS-232-C)是目前最常用的一种串行通讯接口。它是在1970年由美国电子工业协会(EIA)联合贝尔系统、 调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标 准。它的全名是“数据终端设备(DTE)和数据通讯设备(DCE)之间 串行二进制数据交换接口技术标准”该标准规定采用一个25个脚的 DB25连接器,对连接器的每个引脚的信号内容加以规定,还对各种信 号的电平加以规定。(1)接口的信号内容实际上RS-232-C的25条引线中有许多是很少使用的,在计算机与终端通讯中一般只使用3-9条引线。RS-232-C最常用的9条引线的
22、信号内容见附表1所示 (2)接口的电气特性在RS-232-C中任何一条信号线的电压均为负逻辑关系。即:逻 辑“1”,-5 -15V;逻辑“0” +5 +15V 。噪声容限为2V。即 要求接收器能识别低至+3V的信号作为逻辑“0”,高到-3V的信号 作为逻辑“1” (3)接口的物理结构RS-232-C接口连接器一般使用型号为DB-25的25芯插头座,通常插头在DCE端,插座在DTE端. 一些设备与PC机连接的RS-232-C接口,因为不使用对方的传送控制信号,只需三条接口线,即“发送数据”、“接收数据”和“信号地”。所以采用DB-9的9芯插头座,传输线采用屏蔽双绞线。 (4)传输电缆长度由RS-
23、232C标准规定在码元畸变小于4%的情况下,传输电缆长度应为50英尺,其实这个4%的码元畸变是很保守的,在实际应用中,约有99%的用户是按码元畸变10-20%的范围工作的,所以实际使用中最大距离会远超过50英尺,美国DEC公司曾规定允许码元畸变为10%而得出附表2 的实验结果。其中1号电缆为屏蔽电缆,型号为DECP.NO.9107723 内有三对双绞线,每对由22# AWG 组成,其外覆以屏蔽网。2号电缆为不带屏蔽的电缆。型号为DECP.NO.9105856-04是22#AWG的四芯电缆。 1.RS-232-C是美国电子工业协会EIA(Electronic Industry Associati
24、on)制定的一种串行物理接口标准。RS是英文“推荐标准”的缩写,232为标识号,C表示修改次数。RS-232-C总线标准设有25条信号线,包括一个主通道和一个辅助通道,在多数情况下主要使用主通道,对于一般双工通信,仅需几条信号线就可实现,如一条发送线、一条接收线及一条地线。RS-232-C标准规定的数据传输速率为每秒50、75、100、150、300、600、1200、2400、4800、9600、19200波特。RS-232-C标准规定,驱动器允许有2500pF的电容负载,通信距离将受此电容限制,例如,采用150pF/m的通信电缆时,最大通信距离为15m;若每米电缆的电容量减小,通信距离可以
25、增加。传输距离短的另一原因是RS-232属单端信号传送,存在共地噪声和不能抑制共模干扰等问题,因此一般用于20m以内的通信。 第二章 设计简介及设计方案论述2.1 串口通信原理串口通信原理:所谓"串行通信"是指外设和计算机间使用一根数据信号线,数据在一根数据信号线上按位进行传输,每一位数据都占据一个固定的时间长度。这种通信方式使用的数据线少,在远距离通信中可以节约通信成本,当然,其传输速度比并行传输慢。相比之下,由于高速率的要求,处于计算机内部的CPU与串口之间的通讯仍然采用并行的通讯方式,所以串行口的本质就是实现CPU与外围数据设备的数据格式转换(或者称为串并转换器),即
26、当数据从外围设备输入计算机时,数据格式由位 (bit)转化为字节数据;反之,当计算机发送下行数据到外围设备时,串口又将字节数据转化为位数据。 串行端口的本质功能是作为CPU和串行设备间的编码转换器。当数据从 CPU经过串行端口发送出去时,字节数据转换为串行的位。在接收数据时,串行的位被转换为字节数据。 在Windows环境下,串口是系统资源的一部分。 应用程序要使用串口进行通信,必须在使用之前向操作系统提出资源申请要求(打开串口),通信完成后必须释放资源(关闭串口)。串口信号线的一个完整的RS-232C接口有22根线,采用标准的25芯插头座(或者9芯插头座)。25芯和9芯的主要信号线相同。以下
27、的介绍是以25芯的RS-232C为例。 主要信号线定义: 2脚:发送数据TXD; 3脚:接收数据RXD; 4脚:请求发送RTS; 5脚:清除发送CTS; 6脚:数据设备就绪DSR;20脚:数据终端就绪DTR; 8脚:数据载波检测DCD; 1脚:保护地; 7脚:信号地。 DB9和DB25的常用信号脚说明如下:表2-19针串口(DB9)25针串口(DB25)针号功能说明缩写针号功能说明缩写1数据载波检测DCD8数据载波检测DCD2接收数据RXD3接收数据RXD3发送数据TXD2发送数据TXD4数据终端准备DTR20数据终端准备DTR5信号地GND7信号地GND6数据设备准备好DSR6数据准备好DS
28、R7请求发送RTS4请求发送RTS8清除发送CTS5清除发送CTS9振铃指示DELL22振铃指示DELL电气特性: 数据传输速率最大可到20K bps,最大距离仅15m. 注:看了微软的MSDN 6.0,其Windows API中关于串行通讯设备(不一定都是串口RS-232C或RS-422或RS-449)速率的设置,最大可支持到RS_256000,即256K bps! 也不知道到底是什么串行通讯设备?但不管怎样,一般主机和单片机的串口通讯大多都在9600 bps,可以满足通讯需求。 接口的典型应用: 大多数计算机应用系统与智能单元之间只需使用3到5根信号线即可工作。这时,除了TXD、RXD以外
29、,还需使用RTS、CTS、DCD、DTR、DSR等信号线。(当然,在程序中也需要对相应的信号线进行设置。) 以上接法,在设计程序时,直接进行数据的接收和发送就可以了,不需要对信号线的状态进行判断或设置。(如果应用的场合需要使用握手信号等,需要对相应的信号线的状态进行监测或设置。“并行通信”是把一个字符的各数位用几条线同时进行传输,传输速度快,信息率高。但它比串行通信所用的电缆多,故常用在传输距离较短(几米至几十米)、数据传输率较高的场合。 实现并行通信的接口就是并行接口。 并行接口可设计为只作为输入/输出接口,也可设计为既作为输入又作为输出的接口。它可以用两种方法实现,一种是利用同一个接口中的
30、两个通路,一个作输入通路,一个作输出通路;另一种使用同一个双向通路,既作为输入又作为输出。 连接设备接口有PS/2,PATA,LPT等 串行通信是指数据一位一位地依次传输,每一位数据占据一个固定的时间长度。其只要少数几条线就可以在系统间交换信息,特别适用于计算机与计算机、计算机与外设之间的远距离通信, 连接设备接口有SATA,USB等。 串口是计算机上一种非常通用设备通信的协议(不要与通用串行总线Universal Serial Bus或者USB混淆)。大多数计算机包含两个基于RS232的串口。串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼容的设备也带有RS- 232口。同时,串口通信
31、协议也可以用于获取远程采集设备的数据。串口通信的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。它很简单并且能够实现远距离通信。比如IEEE488定义并行通行状态时,规定设备线总常不得超过20米,并且任意两个设备间的长度不得超过2米;而对于串口而言,长度可达1200米。 2.2 Microsoft Communications Control控件简介Visual C+为我们提供了一种好用的ActiveX控件Microsoft Communications Control(MSComm)来支持应用程序
32、对串口的访问,在应用程序中插入MSComm控件后就可以较为方便地实现对通过计算机串口收发数据。 要使用ActiveX控件MSComm,程序员必须将其添加入工程,其方法是:(1)单击主菜单project的子菜单Add To project的Components and Controls选项;(2)在弹出的"Components and Controls Gallery"对话框中选择Registered ActiveX Controls文件夹中的"Microsoft Communications Control,version 6.0"选项,如下图:图2-1
33、基本上,MSComm的诸多接口可以分为如下几类: (1)打开与设置串口接口函数; (2)获得串口设置和串口状态接口函数; (3)设置串口发送数据方式、缓冲区接口及发送数据接口函数; (4)设置串口接收数据方式、缓冲区接口及接收数据接口函数;(5)设置与获取串口上发生的事件接口函数。以下介绍设置中遇到的几个相关函数。SetCommPort:指定使用的串口。GetCommPort:得到当前使用的串口。SetSettings:指定串口的参数。一般设为默认参数"9600,N,8,1"。这样方便与其他串口进行通讯。GetSettings:取得串口参数。SetPortOpen:打开或关
34、闭串口,当一个程序打开串口时,另外的程序将无法使用该串口。GetPortOpen:取得串口状态。GetInBufferCount:输入缓冲区中接受到的字符数。SetInPutLen:一次读取输入缓冲区的字符数。设置为0时,程序将读取缓冲区的全部字符。GetInPut:读取输入缓冲区。GetOutBufferCount:输出缓冲区中待发送的字符数。SetOutPut:写入输出缓冲区。一般而言,使用上述函数和属性就可以进行串口通讯了。2.3 串口通信基本步骤实现串口通信的基本步骤如下流程图所示:图2-2弄清了程序的流程,下面的步骤就是编写程序。第三章 详细设计3.1 建立工程与使用控件打开VC+6
35、.0建立基于对话框的MFC应用程序mytest,如图3-1图3-1在项目中插入MSComm控件工程->增加到工程->Components and Controls->双击Registered ActiveX Controls->选择Microsoft Communications Control, version 6.0->Insert,按默认值添加,多了个电话图标,这是增加后串口通信控件。如图3-2图3-23.2程序界面布局删除确认、取消和提示框,添加“电话”、静态文本、按钮、编辑框,拖动添加的控件,根据喜好布局。如下图3-3所示图3-33.3初始化串口查看-&
36、gt;建立类向导MFC ClassWizard->Member Viariable,选择ClassName为CmytestDlg的类,Control ID为MSCOMM1,双击它,为它添加控制变量m_ctrlComm类似的,选择其它项修改,改后如图3.4。图3-4对CMytestDlg:OnInitDialog()函数中写入对串口的初始化语句,串口初始化语句由IDC_MSCOMM1的CMSComm控制变量m_ctrlComm来设置串口控件属性。代码如下:BOOL CMytestDlg:OnInitDialog()CDialog:OnInitDialog();/ TODO: Add ext
37、ra initialization here m_ctrlComm.SetCommPort(4); /选择COM4m_ctrlComm.SetInputMode(1); /输入方式为二进制方式m_ctrlComm.SetInBufferSize(1024); /设置输入缓冲区大小m_ctrlComm.SetOutBufferSize(512); /设置输出缓冲区大小/波特率9600,无校验,8个数据位,1个停止位 m_ctrlComm.SetSettings("9600,n,8,1"); if(!m_ctrlComm.GetPortOpen()m_ctrlComm.SetP
38、ortOpen(TRUE);/打开串口m_ctrlComm.SetRThreshold(1); /参数1表示每当串口接收缓冲区中有多于/或等于1个字符时将引发一个接收数据的OnComm事件m_ctrlComm.SetInputLen(0); /设置当前接收区数据长度为0m_ctrlComm.GetInput(); /先预读缓冲区以清除残留数据return TRUE; / return TRUE unless you set the focus to a control3.4添加串口事件消息处理函数查看->建立类向导MFC ClassWizard->Message Maps,在Cla
39、ss Name中选择类CmytestDlg,再在Object IDs 中选择IDC_MSCOMM1,然后在Message中双击消息OnCom,在弹出的对话框中将函数名改为OnComm(好记),单击“OK”,就加入了串口事件的消息处理函数,如图3-5图3-5然后编写OnComm()中的代码,主要任务是从串口接收数据并显示在接收编辑框中。void CMytestDlg:OnComm() / TODO: Add your control notification handler code hereVARIANT variant_inp;COleSafeArray safearray_inp;LONG
40、 len,k;BYTE rxdata2048; /设置BYTE数组CString strtemp;if(m_ctrlComm.GetCommEvent()=2) /事件值为2表示接收缓冲区内有字符variant_inp=m_ctrlComm.GetInput(); /读缓冲区safearray_inp=variant_inp; /VARIANT型变量转换为ColeSafeArray型变量len=safearray_inp.GetOneDimSize(); /得到有效数据长度for(k=0;k<len;k+)safearray_inp.GetElement(&k,rxdata+k)
41、;/转换为BYTE型数组for(k=0;k<len;k+) /将数组转换为Cstring型变量BYTE bt=*(char*)(rxdata+k); /字符型strtemp.Format("%c",bt); /将字符送入临时变量strtemp存放m_strEditRXData+=strtemp; /加入接收编辑框对应字符串 UpdateData(FALSE); /更新编辑框内容3.5发送数据函数先为发送按添加一个单击消息,即BN_CLICKED处理函数,打开ClassWizard->Message Maps,选择类CMytestDlg,选中IDC_BUTTON_
42、MANUALSEND,双击BN_CLICKED添加OnButtonManualsend()函数,如图3-6图3-6然后在函数中添加代码如下:void CMytestDlg:OnButtonManualsend() / TODO: Add your control notification handler code hereUpdateData(TRUE); /读取编辑框内容m_ctrlComm.SetOutput(COleVariant(m_strEditTXData);/发送数据程序编好了,下面的问题就是选择数据传输的介质问题,可以使用串口线,也可用虚拟串口。3.6 RS232串口通信接线方
43、法(三线制)实际应用中,电子工程师在设计计算机与外围设备的通信时,通常在9针的基础再进行简化,只用其中的2、3、5三个管脚进行通信。这三个管脚分别是接收线、发送线和地线,在一般情况下即可满足通讯的要求,计算机和外部通讯的接线方法如图3-7: 图3-7值得注意的是,图3-7中2、3两脚是交叉互联的,这很容易理解,因为一个设备的发送线必须联接到另外一台设备的接收线上,反之亦然。另外说明一下,232信号的有效通讯距离是15M。首先,串口传输数据只要有接收数据针脚和发送针脚就能实现:同一个串口的接收脚和发送脚直接用线相连,两个串口相连或一个串口和多个串口相连· 同一个串口的接收脚和发送脚直接
44、用线相连 对9针串口和25针串口,均是2与3直接相连; · 两个不同串口(不论是同一台计算机的两个串口或分别是不同计算机的串口) 表3-1 9针9针25针25针9针25针233222322333557757上面表格是对微机标准串行口而言的,还有许多非标准设备,如接收GPS数据或电子罗盘数据,只要记住一个原则:接收数据针脚(或线)与发送数据针脚(或线)相连,彼些交叉,信号地对应相接。3.7 串口通信中需要注意的几点1.不同编码机制不能混接,如RS232C不能直接与RS422接口相连,市面上专门的各种转换器卖,必须通过转换器才能连接; 2.线路焊接要牢固,不然程序没问题,却因为接线问题误事; 3.串口调试时,准备一个好用的调试工具,如串口调试助手、串口精灵等,有事半功倍之效果; 4.强烈建议不要带电插拨串口,插拨时至少有一端是断电的,否则串口易损坏。 3.8 RS232串口的代替品现在的大多数笔记本电脑中多数都不配备串口,但是串口通信如RS232在单片机等一系列科技产品中依然存在广泛的应用,所以寻找RS232串口的代替解决方案就成为当务之急,而主要存在以下两种解决方案。1.虚拟串口软件VSPM的使用由于现在大多数笔记本电脑没有串口,所以可以使用虚拟串口软件代替物理串口。VSPM软件的主要
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工程项目法务支持试题及答案
- 白水县2025-2026学年三上数学期末检测试题含解析
- 首饰营销方案设计
- 2025年工程经济备考路上试题及答案
- 谷雨品牌新媒体营销案例深度解析
- 知识整合的2025市政工程试题及答案
- 青春期心理健康安全教育
- 协作之美的2025年市政工程考试试题及答案
- 钉钉项目管理功能解析
- 项目档案管理试题及答案
- 2025年浙江湖州市城市投资发展集团有限公司招聘笔试参考题库附带答案详解
- 围手术期患者低温防治专家共识(2023版)解读课件
- 装饰装修施工人员安全知识培训考试试卷及答案
- 篮球智慧树知到期末考试答案章节答案2024年浙江大学
- 多图中华民族共同体概论课件第十一讲 中华一家与中华民族格局底定(清前中期)根据高等教育出版社教材制作
- 中国马克思主义与当代思考题(附答案)
- 2013年高考安徽理科数学试题及答案(word解析版)
- 金属风管支架重量计算表
- 出差人员安全责任书
- 国际空运知识
- GreedyRabbit贪吃的兔子PPT课件
评论
0/150
提交评论