我是靠谱客的博主 谦让流沙,最近开发中收集的这篇文章主要介绍linux下串口通信详解,Linux操作系统下的串口通信学习笔记,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

http://www.diybl.com/ 2008-7-5  网络 点击:  [ 评论 ]

-

-

文章搜索:     【点击打包该文章】

【本站开通在线QQ讨论群】

CBAUDEX (不属于POSIX)扩展的波特率掩码(1位),包含在CBAUD中。

CSIZE 字符长度掩码。取值为CS5,CS6,CS7或CS8。

CSTOPB 设置两个停止位。

CREAD 打开接受者。

PARENB 允许输出产生奇偶信息以及输入的奇偶校验。

PARODD 输入和输出是奇校验

HUPCL 在最后一个进程关闭设备后,降低MODEM控制线(挂断)。

CLOCAL 忽略MODEM控制线。

LOBLK (不属于POSIX)从非当前SHELL层阻塞输出(用于sh1)。

CIBAUD (不属于POSIX)输入速度的掩码。CIBAUD各位的值与CBAUD各位相同,左移了IBSHIFT位。

CRTSCTS (不属于POSIX)启用RTS/CTS(硬件)控制流。

c_lflag成员

Flag Description

ISIG 当接收到字符INTR,QUIT,SUSP或DSUSP时,产生相应的信号。

XCASE (不属于POSIX;LINUX下不支持)如果同时设置了ICANON,终端只有大写。输入被转换为小写,除了以/前缀的字符。输出时,大写字符被前缀/,小写字符被转换成大写。

ECHO 回显输入字符。

ECHOE 如果同时设置了ICANON,字符ERASE擦除前一个输入字符,WERASE擦除前一个词。

ECHOK 如果同时设置了ICANON,字符KILL删除当前行。

ECHONL 如果同时设置了ICANON,回显字符NL,即使没有设置ECHO。

ECHOCTL (不属于POSIX)如果同时设置了ECHO,除了TAB,NL,START和STOP之外的ASCII控制信号被回显为^x,这里X是比控制信号大0x40的ASCII码。例如字符0x08(BS)被回显为^H。

ECHOPRT (不属于POSIX)如果同时设置了ICANON和IECHO,字符在删除的同时被打印。

ECHOKE (不属于POSIX)如果同时设置了ICANON,回显KILL时将删除一行中的每个字符,如同指定了ECHOE和ECHORPT一样。

DEFECHO (不属于POSIX)只在一个进程读的时候回显。

FLUSHO (不属于POSIX;LINUX不支持)输出被刷新。这个标志可以通过键入字符DISCARD来打开和关闭。

NOFLSH 禁止产生SIGINT,SIGQUIT和SIGSUSP信号时刷新输入和输出队列。

TOSTOP 向试图写控制终端的后台进程组发送SIGTTOU信号。

PENDIN (不属于POSIX;LINUX不支持)在读入一个字符时,输入队列中的所有字符被重新输出。(bash用他来处理typeahead)。

IEXTEN 启用实现自定义的输入处理。这个标志必须与ICANON同时使用,才能解释特殊字符EOL2,LNEXT,REPRINT和WERASE,IUCLC标志才有效。

c_cc数组成员

Flag Description

VINTR (003,ETX,Ctrl-C,or also 0177, DEL, rubout)中断字符。发送SIGINT信号。当设置ISIG时可被识别,不再作为输入传递。

VQUIT (034,FS,Ctrl-/)退出字符。发出SIGQUIT信号。当设置ISIG时可被识别,不再作为输入传递。

VERASE (0177, DEL, rubout, or 010, BS, Ctrl-H, or also #) 删除字符。删除上一个还没有删掉的字符,但不删除上一个 EOF 或行首。当设置 ICANON 时可被识别,不再作为输入传递。

VKILL (025, NAK, Ctrl-U, or Ctrl-X, or also @) 终止字符。删除自上一个 EOF 或行首以来的输入。当设置 ICANON 时可被识别,不再作为输入传递。

VEOF (004, EOT, Ctrl-D) 文件尾字符。更精确地说,这个字符使得 tty 缓冲中的内容被送到等待输入的用户程序中,而不必等到 EOL。如果它是一行的第一个字符,那么用户程序的 read() 将返回 0,指示读到了 EOF。当设置 ICANON 时可被识别,不再作为输入传递。

VMIN 非 canonical 模式读的最小字符数。 VEOL (0, NUL) 附加的行尾字符。当设置 ICANON 时可被识别。 VTIME 非 canonical 模式读时的延时,以十分之一秒为单位。 VEOL2 (not in POSIX; 0, NUL) 另一个行尾字符。当设置 ICANON 时可被识别。

VEOL (0, NUL) 附加的行尾字符。当设置 ICANON 时可被识别。

VTIME 非 canonical 模式读时的延时,以十分之一秒为单位。

VEOL2 (not in POSIX; 0, NUL) 另一个行尾字符。当设置 ICANON 时可被识别。

VSWTCH (not in POSIX; not supported under Linux; 0, NUL) 开关字符。(只为 shl 所用。)

VSTART (021, DC1, Ctrl-Q) 开始字符。重新开始被 Stop 字符中止的输出。当设置 IXON 时可被识别,不再作为输入传递。

VSTOP (023, DC3, Ctrl-S) 停止字符。停止输出,直到键入 Start 字符。当设置 IXON 时可被识别,不再作为输入传递。

VSUSP (032, SUB, Ctrl-Z) 挂起字符。发送 SIGTSTP 信号。当设置 ISIG 时可被识别,不再作为输入传递。

VDSUSP (not in POSIX; not supported under Linux; 031, EM, Ctrl-Y) 延时挂起信号。当用户程序读到这个字符时,发送 SIGTSTP 信号。当设置 IEXTEN 和 ISIG,并且系统支持作业管理时可被识别,不再作为输入传递。

VLNEXT (not in POSIX; 026, SYN, Ctrl-V) 字面上的下一个。引用下一个输入字符,取消它的任何特殊含义。当设置 IEXTEN 时可被识别,不再作为输入传递。

VWERASE (not in POSIX; 027, ETB, Ctrl-W) 删除词。当设置 ICANON 和 IEXTEN 时可被识别,不再作为输入传递。

VREPRINT (not in POSIX; 022, DC2, Ctrl-R) 重新输出未读的字符。当设置 ICANON 和 IEXTEN 时可被识别,不再作为输入传递。

VDISCARD (not in POSIX; not supported under Linux; 017, SI, Ctrl-O) 开关:开始/结束丢弃未完成的输出。当设置 IEXTEN 时可被识别,不再作为输入传递。

VSTATUS (not in POSIX; not supported under Linux; status request: 024, DC4, Ctrl-T).

8.2设置波特率

对于波特率的设置通常使用cfsetospeed和cfsetispeed函数来完成。获取波特率信息是通过cfgetispeed和cfgetospeed函数来完成的。

cfsetospeed函数

头文件:

#include

函数原型:

int cfsetospeed(struct termios *termptr, speed_t speed);

参数:

struct termios *termptr - 指向termios结构的指针

speed_t speed - 需要设置的输出波特率

返回值:

如果成功返回0,否则返回-1

cfsetispeed函数

头文件:

#include

函数原型:

int cfsetispeed(struct termios *termptr, speed_t speed);

参数:

struct termios *termptr - 指向termios结构的指针

speed_t speed - 需要设置的输入波特率

返回值:

如果成功返回0,否则返回-1

cfgetospeed函数

头文件:

#include

函数原型:

speed_t cfgetospeed(const struct termios *termptr);

参数:

const struct termios - 指向termios结构的指针

返回值:

返回输出波特率

cfgetispeed函数

头文件:

#include

函数原型:

speed_t cfgetispeed(const struct termios *termptr);

文章出处:http://www.diybl.com/course/6_system/linux/Linuxjs/200875/130397_3.html

最后

以上就是谦让流沙为你收集整理的linux下串口通信详解,Linux操作系统下的串口通信学习笔记的全部内容,希望文章能够帮你解决linux下串口通信详解,Linux操作系统下的串口通信学习笔记所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部