Linux串口开启之路(linux打开串口)
Linux 串口开启之路
Linux 是一款免费、开放源代码的多用户 Unix-like 操作系统,由于拥有良好的稳定性和安全性,被广泛地应用和使用,其中包括服务器、移动设备、智能手机等环境中。除此之外,更有许多人将其应用于物联网的环境中,其中,一定程度依赖于串口与外界的设备,以进行数据的传递以及设备的控制与配置。
因此,本文就将介绍Linux中,如何打开串口的操作,让大家能够顺利的进行数据的读写访问,从而实现从Linux系统中控制其它设备的目的。
首先,需要开发者查看Linux环境中设备节点,例如一般串口设备,其节点通常是在/dev/目录,一般像ttyUSB0,ttyUSB1等。如果该节点不存在,则表示没有识别该设备,需要检查是否接线和安装驱动等问题,一般推荐使用支持库libusb和libftdi等。
其次,当开发者确定了串口设备的存在之后,开发者可以使用open,ioctl,read和write函数,来操作串口进行数据的发送,读取,设置和查询等操作,例如:
一般的操作串口的方式(不包含异常处理的的部分)如下:
“`cpp
//变量fd表示ttypUSB0的存放的节点文件描述符
//打开节点
int fd = open(“/dev/ttyUSB0”, O_RDWR);
//获取串口状态,存在status中
termios status;
ioctl(fd, TCGETS,&status);
//设置串口,波特率9600,数据位8bits,无校验位,停止位1,无软件流控
status.c_lflag &= ~(ECHO & ICANON);
status.c_iflag &= ~ICRNL;
status.c_oflag &= ~OPOST;
status.c_cflag |= CREAD | CS8 | CLOCAL;
status.c_cc[VMIN] = 1;
status.c_cc[VTIME] = 0;
status.c_ispeed = 921600;
status.c_ospeed = 921600;
//设置好之后,将设置好的status写入到节点文件
ioctl(fd, TCSETS, &status);
//进行数据读写操作
int size = write(fd,”hello world”,11); // 发送数据
char buf[1024];
memset(buf, 0, 1024);
size = read(fd, buf, 1024); //读取数据
//关闭节点文件
close(fd);
以上就是Linux系统下,串口怎么打开和操作的一般方式,只要熟悉linux系统函数后,就可以比较顺利的进行读写操作。另外,linux下还可以使用专业的串口程序来操作,比如pySerial,该程序封装了操作串口的函数,给用户提供像file类似的api来操作串口,操作起来比较方便。
总结来说,Linux系统下,开发者要进行串口操作,需要先确定该设备的节点文件,然后使用open和ioctl来打开和设置串口,最后使用read和write等函数实现数据的读写操作,从而实现串口的开发操作。