串口设置详解.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
串口设置详解

串口设置详解 本节主要讲解设置串口的主要方法。 如前所述,设置串口中最基本的包括波特率设置,校验位和停止位设置。串口的设置主 要是设置struct termios结构体的各成员值,如下所示: #includetermios.h struct termio { unsigned short c_iflag; /* 输入模式标志*/ unsigned short c_oflag; /* 输出模式标志*/ unsigned short c_cflag; /* 控制模式标志*/ unsigned short c_lflag; /*本地模式标志*/ unsigned char c_line; /* line discipline */ unsigned char c_cc[NCC]; /* control characters */ }; 在这个结构中最为重要的是c_cflag,通过对它的赋值,用户可以设置波特率、字符大小、 数据位、停止位、奇偶校验位和硬件流控等。另外c_iflag 和c_cc 也是比较常用的标志。在 此主要对这3 个成员进行详细说明。 c_cflag 支持的常量名称如表6.10 所示。其中设置波特率为相应的波特率前加上‘B’, 由于数值较多,本表没有全部列出。 表6.10 c_cflag支持的常量名称 CBAUD 波特率的位掩码 B0 0波特率(放弃DTR) 《嵌入式Linux应用程序开发详解》——第6章、文件IO编程 … … 续表 B1800 1800波特率 B2400 2400波特率 B4800 4800波特率 B9600 9600波特率 B19200 19200波特率 B38400 38400波特率 B57600 57600波特率 B115200 115200波特率 EXTA 外部时钟率 EXTB 外部时钟率 CSIZE 数据位的位掩码 CS5 5个数据位 CS6 6个数据位 CS7 7个数据位 CS8 8个数据位 CSTOPB 2个停止位(不设则是1个停止位) CREAD 接收使能 PARENB PARODD 校验位使能 使用奇校验而不使用偶校验 HUPCL 最后关闭时挂线(放弃DTR) CLOCAL 本地连接(不改变端口所有者) LOBLK 块作业控制输出 CNET_CTSRTS 硬件流控制使能 在这里,对于c_cflag成员不能直接对其初始化,而要将其通过“与”、“或”操作使用其 中的某些选项。 输入模式c_iflag 成员控制端口接收端的字符输入处理。c_iflag 支持的变量名称,如表 6.11 所示。 表 6.11 c_iflag支持的常量名称 INPCK 奇偶校验使能 IGNPAR 忽略奇偶校验错误 PARMRK 奇偶校验错误掩码 ISTRIP 除去奇偶校验位 续表 IXON 启动出口硬件流控 IXOFF 启动入口软件流控 IXANY 允许字符重新启动流控 IGNBRK 忽略中断情况 BRKINT 当发生中断时发送SIGINT信号 INLCR 将NL映射到CR IGNCR 忽略CR ICRNL 将CR映射到NL IUCLC 将高位情况映射到低位情况 IMAXBEL 当输入太长时回复ECHO c_cc 包含了超时参数和控制字符的定义。c_cc 所支持的常用变量名称,如表6.12 所示。 表6.12 c_cc 支持的常量名称 VINTR 中断控制,对应键为CTRL+C VQUIT 退出操作,对应键为CRTL+Z VERASE 删除操作,对应键为Backspace(BS) VKILL 删除行,对应键为CTRL+U VEOF 位于文件结尾,对应键为CTRL+D VEOL 位于行尾,对应键为Carriage return(CR) VEOL2 位于第二行尾,对应键为Line feed(LF) VMIN 指定了最少读取的字符数 VTIME 指定了读取每个字符的等待时间 下面就详细讲解设置串口属性的基本流程。 1.保存原先串口配置 首先,为了安全起见和以后调试程序方____________便,可以先保存原先串口的配置,在这里可以使 用函数tcgetattr(fd,oldtio)。该函数得到与fd指向对象的相关参数,并将它们保存于oldtio 引用的termios结构中。该函数还可以测试配置是否正确、该串口是否可用等。若调用成功, 函数返回值为0,若调用失败,函数返回值为?1,其使用如下所示: if ( tcgetattr( fd,oldtio) != 0) { perror(SetupSerial 1); 《嵌入式Linux应用程序开发详解》——第6章、文件IO编程 return -1; } 2.激活选项有CLOCAL和CREAD CLOCAL和CREAD 分别用于本地连接和接受使能,因此,首先要通

文档评论(0)

yan698698 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档