什么是串口
异步方式将数据的每一位分时的使用同一通道进行传输。
RS-232、RS-485、RS-422、SATA和USB都是串口。
串口参数主要包括:波特率、数据位、停止位、流控制协议
编程中包含的主要文件:#include <termios.h>
PPSIX终端控制定义
串口的打开和关闭
在Linux中,串口文件位于/dev
目录下,串口1为/dev/ttyS0
,打开方式如下
int fd;
fd = open("/dev/ttyS0", O_RDWR);
if (fd == -1){
perror("open error!");
}
/**/
close(fd);
cat /proc/devices //查看字符设备和块设备
串口的设置
最基本的串口设置包括波特率、校验位和停止位设置,且串口设置主要使用termios.h头文件中定义的termios结构,如下:
struct termios
{
tcflag_t c_iflag; //输入模式标志
tcflag_t c_oflag; //输出模式标志
tcflag_t c_cflag; //控制模式标志
tcflag_t c_lflag; //本地模式标志
cc_t c_line; //line discipline
cc_t c_cc[NCC]; //control characters
}
串口控制函数
tcgetattr()
tcsetattr()
cfgetispeed()
cfgetospeed()
cfsetispeed()
cfsetospeed()
tcdrain()
tcflow()
tcflush()
tcsendbreak()
tcgetpgrp()
tcsetpgrp()
设置串口的流程
- 保存串口之前的设置,保护现场
- 接收使能:CLOCAL和CREAD
- 设置波特率、数据位、校验、停止位、最少字符和等待时间,
- 激活配置