VC编程中的串口通信技术.pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《VC编程中的串口通信技术.pdf》由会员分享,可在线阅读,更多相关《VC编程中的串口通信技术.pdf(4页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第2 l 卷第9 期2 0 0 1 年9 月计算机应用c o 叫t HA p p H 倒o n sV 0 1 2 1 9S 印,2 0 0 1文章编号:1 0 D 1 9 0 8 1(2 0 0 1)0 9 0 0 9 4 0 2V C 编程中的串口通信技术陈细军,谭民(中国科学院自动化研究所,北京1 0 0 0 8 0)摘要:首先介绍了利用微机R s 一2 3 2 口进行串行通信的一般步骤,然后分别列举了三种可在v c+鳊程中使用的串口通信方法,最后对这三种串口通信编程方法的使用条件、灵活性和复杂程度等进行了比较。关键词:句柄;超时;同步;异步;事件驱动中图分类号:1 N 9 1 9 3;1
2、 P 3 1 2 v c文献标识码:A1 串行通信的一般步骤利用微机R S 一2 3 2 口进行串行通信的一般步骤如下:1)打开串口在3 2 位W j r 由孵中,串口和其他通信设备都被作为文件进行处理,在使用前必须先将其打开。为了保证串口遥信数据传输的可靠性,串口打开时一般者陋置为非共享模式。串口一旦被打开后,其他的应用程序将无法打开或使用它。2)配置申日在使用串口进行数据通信前必须对其进行配置,串口配置主要包括波特率、数据位数、停止位数、奇偶校验、发送缓冲区大小、接受缓冲区大小等。3)超时设置在串口通信时如果数据传输突然中断,对串口的读写操作可能会进人无限期的等待状态,为避免这种情况发生,
3、必须设置串口读写操作的等待时间,等待时间超过后,串口的读写操作将被主动放弃,这样即使数据传输突然中断程序也不会被挂超或阻塞。4)数据读写串口打开并配置好后即可对其进行读写操作了对串口的读写操作可采用查询、同步、异步和事件驱动等方式。5)关闭串口在串口使用完后应将其关闭,否则如果没有关闭串口。该串口将始终处于打开状态,其他的应用程序就元法打开或使用它。2利用0 c x 控件实现串口通信在v c+中利用O o【控件实现串口通信和中实现申口通信的方法类似,在编程上相对比较简单,一般步骤如下:1)创建串口通信资源并配置串口在v c 中利用o o(控件实现串口通信首先需要创建串口通信资源并在串口通信资源
4、的属性(P r o p 呲岫)一项中配置串口串口通信的波特率、数据位数、停止位数、奇偶校验、发送缓冲区大小、接受缓冲区大小以及超时设置等均在此时进行配置。2)打开串口。在申口资源已创建并配置好后,即可用s:出。n 嘶e n(咖)函数将该串口打开,打开串口的常用程序如下:C a 晒C 叩口1 0 h I L 伽m 啊缸l:!m 棚G t B1 q n()H 圳s B1 q 一(U E);如肌帮目-B 雌(壤串口不可用);3)数据读写利用O。(控件实现串口读写操作可采用查询或事件驱动方式进行,如采用查询方式读取串口可先用I h l B l l 如r G 吼】I I t()函数检查串口已接收的字节数
5、,然后用c e【h-p m()函数即可读取这些已接收的字节;利用0 0【控件实现串口写操作时首先要将待发送的数据由A s 皿型字符串转换成u m c o D E 型,然后用钳脚函数将数据从串口发送出去。如采用事件驱动方式读写串口,首先需设置接收或发送事件的触发条件,然后在串口事件响应函数中用c e d I l p m 和s 吐O 曲n 函数进行相应的读写操作。4)关闭串口利用O o【控件实现串口通信时关闭串口非常简单只需将打开串口函数的参数由T R U E 改为F 衄即可:r l L 叫m t ds e 旧t 呻哪(F l s E);3利用A H 函数实现串口通信在3 2 位W j I 山啪中
6、可以使用w i n 3 2 通信 P I 函数实现对R s B 2 串行通信口的访问,W j T 山帽9 5 和W i r 出懈粥中对串口的打开、读取、写入和关闭所用的函数和对文件进行打开、读取、写人和关闭所用的函数相同,以下对串日的操作在w 确a 啪9 5 和w h 山啉9 8 中均可使用。1)打开串口W 2 中用于打开串口的A H 函数为Q 哺【e F j l e,其原型为:o 瑚e D“c e,抽 目,m 删池,1 口Q m 如A 衄l n 1s _ 胃-p L I 秭k);其中各参数的意义如下:3 z D e“c e 将要打开的串口逻辑名,如c o 砌或c 0 M 2弥d c。嘲指定串
7、口访问的类型,可以是读取、写人或两收稿日期:2 0 D l 一一2 3作者篱介:陈细军(1 5 一),男,胡北人,工程师硬士主要研究方向:工业过程控制、机器人控制;谭民(1 9 6 2 一),男广东人,研究员,博士,主要研究方向:机器人的可靠性、复杂系统控制理论厦应用 万方数据第9 期陈细军等:、屹鳊程中的串口通信技术者并列n。旺!M。矗指定共享属性,由于申口不能共享,该参数必须置为0l 呻引用安全性属性结构,缺省值为N U u地_ c 嘲把创建标志,对串口操作该参数必须置为O P E N 日皿弧粥丘h d n 珐A r 羽8 单属性描述,用于指定该申口是否可进行异步操作h 1 钿d|培m 指
8、向模板文件的句柄,对串口而言该参数必须置为M 工以下程序用于以同步读写方式打开卑口c 0 M 1:H 1 虹虹正 _ C 唧:D W O R Dd r E r“h C 呻=Q 翻l c 踟e【-C O M r G 1 列删C 一1 铂A DG 口删。一W R r r E,0 N U U o】弛D 砸皿岷,0,N U L L);茁(h c=H 心耻正)阻F 1 w 下T T F)d-E B 口=Q t h E r();蛐g-B(山E m);l2)配置串口配置串口是通过改变设备控制块D(n 时虹c 咂血0 lB 砒)的成员变量值来实现的,接收缓冲区和发送缓冲区的大小可通过s e 呻c 咖函数来设置
9、。以下程序将串口设置为:波特率:9 6 0 0,数据位数;7 位,停止位:2 位。偶校验,接收缓冲区和发送缓冲区大小均为1 0 斟个字节,最后用P u 弹c 0,函数终止所有的后台读写操作并清空接收缓冲区和发送缓冲区。D 口 d 如:d c b B-d R m=9 6 0 D:d c b 毋她=7;曲蹦口=删D m f 叮Y;d c b,娜岫=2;1 W O S m 唧;酗m i r q=T R【】E;d c b 惴4 t 豫U E;(!&屺日s t m【h c。8 d 由)Mg 陆(。串口设置(融c 唧衄啦)出错!。);S l G(_ c,l 嘣,1 0 2 4);nBC(h O 响,舢蚓堋
10、 B 0 衄IH m c L R)0 盯In m a L 耶【c u:RP u R G 一R】(c u:R);3)超时设置超时设置是通过改变c 0 蛐艘咖吣结构的成员变量值来实现的,以下程序将串口读操作的超时设定为1 0 毫秒。C 删町种匝D t 璐协:田_ H(拄1 0 0。面删b);b R _ 吐曾憎铀,嘲t=1 0:l c 棚韭m 阻抛(t I C 唧。b);配置串口和超时设置也可以用B I 舳 I I d I 如e 咄函数一次完成。该函数原型如下:m d d D(胁h m 呻叫曲(h H 9i“5 t 鼬,t 曲曲b)4)数据读写对串口进行读取、写入所用的函数和对文件进行读取、写入所用
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VC 编程 中的 串口 通信 技术
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内