本篇内容介绍了“linux串口的概念是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
linux串口是串行接口的简称,是采用串行通信方式的扩展接口;串口是计算机一种常用的接口,具有连接线少、通信简单的特点,只要一对传输线就可以实现双向通信,linux可以使用系统调用open()或close()来打开或关闭串口。
本教程操作环境:linux7.3系统、Dell G3电脑。
串行接口 (Serial Interface) 是指数据一位一位地顺序传送,其特点是通信线路简单,只要一对传输线就可以实现双向通信(可以直接利用电话线作为传输线),从而大大降低了成本,特别适用于远距离通信,但传送速度较慢。
一条信息的各位数据被逐位 按顺序传送的通讯方式称为串行通讯。
串行通讯的特点是:
数据位的传送,按位顺序进行,最少只需一根传输线即可完成;
成本低但传送速度慢。串行通讯的距离可以从几米到几千米;
根据信息的传送方向,串行通讯可以进一步分为单工、半双工和全双工三种。
串口是计算机上的串行通讯的物理接口。计算机历史上,串口曾经被广泛用于连接计算机和终端设备和各种外部设备。虽然以太网接口和USB接口也是以一个串行流进行数据传送的,但是串口连接通常特指那些与RS-232标准兼容的硬件或者调制解调器的接口。
串行接口简称串口(通常指COM接口),是采用串行通信方式的扩展接口。串口是计算机一种常用的接口,具有连接线少,通讯简单,得到广泛的使用。串口的特点是通信线路简单,只要一对传输线就可以实现双向通信从而大大降低了成本,特别适用于远距离通信,但传送速度较慢。在Linux中,同样存在着大量的串口,本文我们就来聊聊Linux下的串口。
一、串口需要的头文件
1: #include /*标准输入输出定义*/
2: #include /*标准函数库定义*/
3: #include /*Unix 标准函数定义*/
4: #include
5: #include
6: #include /*文件控制定义*/
7: #include /*POSIX 终端控制定义*/
8: #include /*错误号定义*/
二、打开关闭串口
对于串口设备文件的操作与其他文件操作基本相同。可以使用系统调用open(), close()打开或关闭串口。
在Linux下串口文件是在/dev下的,例如串口一为/dev/ttyS0,串口二为/dev/ttyS1。
open(),close()系统调用的原型
1: #include 2: #include 3: #include 4: int open(const char *path, int oflags); 5: int open(const char *path, int oflags, mode_t mode); 6: #include 7: int close(int fildes); 8: 实例:打开串口ttyS0。 9: int fd; 10: /*以读写方式打开串口*/ 11: fd = open( "/dev/ttyS0", O_RDWR); 12: if (-1 == fd){ 13: /* 不能打开串口一*/ 14: perror("open serial port error"); 15: }
三、设置串口
设置串口包括波特率设置、校验位、停止位设置。在串口设置中主要是设置struct termios结构体成员的值。
struct termios结构如下
1: #include 2: struct termio 3: { 4: unsigned short c_iflag; /* input options输入模式标志 */ 5: unsigned short c_oflag; /* output options输出模式标志 */ 6: unsigned short c_cflag; /* control options控制模式标志*/ 7: unsigned short c_lflag; /* local mode flags */ 8: unsigned char c_line; /* line discipline */ 9: unsigned char c_cc[NCC]; /* control characters */ 10: };
“linux串口的概念是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。