linux串口编程-termios结构

本文介绍了Linux串口编程的基础知识,重点讲解了struct termios结构体的定义及其成员变量的作用,包括输入、输出、控制及本地模式标志等,为读者提供了深入理解Linux串口编程的起点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

linux串口编程简单起来可以十分简单,但是复杂起来,也可以异常复杂。因为linux串口不仅仅是个串口,它跟终端联系起来。一般串口编程,绕不开的是struct termios结构体,其定义如下:

#define NCCS 32
struct termios
  {
    tcflag_t c_iflag;       /* input mode flags */
    tcflag_t c_oflag;       /* output mode flags */
    tcflag_t c_cflag;       /* control mode flags */
    tcflag_t c_lflag;       /* local mode flags */
    cc_t c_line;            /* line discipline */
    cc_t c_cc[NCCS];        /* control characters */
    speed_t c_ispeed;       /* input speed */
    speed_t c_ospeed;       /* output speed */
#define _HAVE_STRUCT_TERMIOS_C_ISPEED 1
#define _HAVE_STRUCT_TERMIOS_C_OSPEED 1
  };  

以上结构体定义在/usr/include/bits/termios.h,一般我们编程的时候,引用/usr/include/termios.h即可,该头文件会自动引入bits/termios.h。

对于以上自定义类型,其定义如下:

typedef unsigned char   cc_t;
typedef unsigned int    speed_t;
typedef unsigned int    tcflag_t;

结构中的c_iflag/c_oflag/c_cflag/c_lflag都是tcflag_t类型,本质就是个32位的无符号整数。每一个位用作特定的标志位。可想而知,光这些标志位,就多得跟饭一样。串口编程,其实也是了解熟悉这些标志位功能的过程。暂且先记录这么多,具体的位标志什么意义,待后续整理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值