在 termios 结构体以及内部终端控制标志中,并非所有的参数对于实际的物理串口都是有效的,在使用过程中也不需要对于所有标志的作用都有所理解。事实上,快速掌握一项技术的核心点也是一种学习能力。对于使用,熟悉并掌握操作框架十分有用。对于串口编程,核心步骤也十分鲜明,下面首先介绍 termios 相关的 API 函数。
核心配置函数
1. int tcgetattr(int fd, struct termios *termios_p);
函数功能:获取当前终端接口配置并将配置写入参数 termios_p 指向的 termios 结构体。一般操作时将配置保存为 old_termios,可以在需要时通过 tcsetattr 函数对终端接口进行重新配置。
2. int tcsetattr(int fd, int actions, const struct termios *termios_p);
函数功能:使用 termios_p 指向的 termios 结构体对终端接口进行配置,参数 actions 控制修改方式,共有3种修改方式,如下所示:
- TCSANOW:立刻对配置进行修改。
- TCSADRAIN:等当前输出完成后再对配置进行修改。
- TCSAFLUSH