W12实验十二串口通讯实验

W12实验十二串口通讯实验

ID:41745872

大小:57.88 KB

页数:6页

时间:2019-08-31

W12实验十二串口通讯实验_第1页
W12实验十二串口通讯实验_第2页
W12实验十二串口通讯实验_第3页
W12实验十二串口通讯实验_第4页
W12实验十二串口通讯实验_第5页
资源描述:

《W12实验十二串口通讯实验》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、实验十二串口通讯实验【实验目的】1、了解串口设备文件系统的使用方法;2、掌握Qt编程方法与技巧3、掌握Qtopia应用程序的配置过程【实验原理】在Linux操作系统屮对底层终端的处理是一个非常复杂的过程,需要处理许多不同类型的设备(包括调制解调器、终端仿真、伪终端等)。Linux系统处理终端的方法是通过串行接口连接的控制台•系统通信并运行程序。由于越来越多的厂商都参•终端的生产,而且每个厂商都是为自己的终端设计自己的命令集,所以需要冇一种方法对终端的访问进行一般化处理。Linux系统使川一个能力数据库terminfo來描述每个终端的能力以及调丿IJ

2、这些功能的方法。1、终端控制函数介绍在对底层终端操作中有一个用丁渣询和操作终端的标准接口结构体termios,该结构体对终端的输入、输出、硬件特性、控制I办议等方面进行了定义,具体定义形式如卞:structtermios{tcflag^tc_itlag;tcflag_tc_oflag;tcflag_tc_cflag;tcflag_tc_lflag;cc_t;cc_tc_cc[NCCS];};其中参数cjflag用来控制输入处理选项;c_oflag控制输出数据的处理;c_cflag设置决定终端破件特性的控制标志;jlflag存放本地模式标志,用來操纵

3、终端特性;c」ine表示控制协议;c_cc包含特殊字符序列的值以及它们所代表的操作。终端有两种工作模式,分别为规范模式(或称为cooked模式)和非规范模式(或称为原始模式)。在规范模式下,终端设备驱动程序处理特殊字符并以一次一行的方式将输入发送给程序使用,而在非规范模式下,大多数键盘输入得不到处理,也不缓存。(1)、终端属性控制函数对终端的操作主要通过属性设置两数tcsetag)和属性获取函数tcgetattrO^j实现。其屮tcsetattr()函数用來初始化一个termios数据结构,并设置用来表示该终端特性和设置的属性值,tcgctattr

4、O获取和查询终端属性的数据结构,当改变操作完成后,通过使用tcsctattr()函数将用到的新值更新终端。tcsetatt")和tcgetattr()的调用形式如下:inttcsetattr(intfd,intaction,structtermios*tp)函数tcsetattr()®用由tp引用的termios数据结构来设置与文件描述符fd相关联的终端参数,参数action控制设置参数什么时候发生改变,如果取TASANOW表示立即改变所设参数属性;如果取TCSADRAIN表示fd上的输出已经发送到终端后才改变所设置的参数属tt;如果取TCSAFL

5、USH表示fd上的输出完全被发送到终端后,任何挂起的输入将被丢弃。inttcgetattr(intfd、structtermios*tp)查询和-文件描述符相关联的终端参数,并将参数存储到由tp所引用的teimios数据结构体中,调用成功返冋0,发生错误返冋-1。(1)、终端速度控制函数终端速度控制两数用來设置终端设备的输入、输出速度,速度以波特率來定义。这些函数都是成对出现,其中的两个用来获取和设置输入的速度,另两个用来获収和设置输出线路的速度,它们定义形式如下:intcfgctispeed(structtermios*tp)intcfsetis

6、peed(structtermios*tp,speed_tspeed)intcfgetospeed(structtermios*tp)intcfsetospeed(structtermios*tp,speed_tspeed)其屮函数cfgetispeedO®冋由tp指针指向的termios数据结构屮所存储的输入线路速度值。函数cfsetispeed()将由tp指针指向的termios数据结构中存储的输入线路速度设置为speedo函数cfgetospeed()i£回由tp指针指向的termios数据结构中所存储的输出线路速度值。函数cfsetospe

7、ed()4^111tp指针指向的termios数据结构中存储的输出线路速度设置为speedo以上四个函数调用成功则返I叫0,发生错谋则返I叫・1(2)、行控制函数行控制函数是用来查询和设置各种与数据操作方式、时间等相关的特征。它们的定义如下:inttcdrain(intfd)inttcflush(intfd,intqueue)inttcflow(intfd,intaction)其中函数tcdrainO将使所有挂起的输出操作完成,并将一直保持等待,直到所有输出都已经写到文件描述字fd指向的文件为止。而两数tcflush()将刷新最新排在文件描述字fd

8、队列中的输入和输出。参数queue用來指定耍刷新的数据,如果queue取值为TCIFUSH,刷新接收到但尚耒读取的输入数据

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。