linux串口编程教程.pptxVIP

  • 9
  • 0
  • 约1.46千字
  • 约 17页
  • 2022-10-27 发布于上海
  • 举报
会计学;1、串口概述; UART的操作主要包括以下几个部分: 数据发送; 数据接收; 产生中断; 产生波特率; Loopback模式; 红外模式; 自动流控模式; 串口参数的配置主要包括:波特率、数据位、停止位、流控协议。; linux中的串口设备文件存放于/dev目录下,其中串口一,串口二对应设备名依次为“/dev/ttyS0”、“/dev/ttyS1”。 在linux下操作串口与操作文件相同。;2、串口详细配置; 该结构中c_cflag最为重要,可设置波特率、数据位、校验位、停止位。在设置波特率时需在数字前加上‘B’,如B9600。B19200。使用其需通过“与”“或”操作方式。; 输入模式c_iflag成员控制端口接收端的字符输入处理。;串口控制函数;2.1串口配置流程;设置数据位,需使用掩码设置。 newtio.c_cflag = ~CSIZE; newtio.c_cflag |= CS8; 设置奇偶校验位,使用c_cflag和c_iflag。 设置奇校验: newtio.c_cflag |= PARENB; newtio.c_cflag |= PARODD; newtio.c_iflag |= (INPCK | ISTRIP); 设置偶校验: newtio.c_iflag |= (INPCK | ISTRIP); newtio.c_cflag |= PARENB; newtio.c_cflag = ~PARODD;;设置停止位,通过激活c_cflag中的CSTOPB实现。若停止位为1,则清除CSTOPB,若停止位为2,则激活CSTOPB。 newtio.c_cflag = ~CSTOPB; 设置最少字符和等待时间,对于接收字符和等待时间没有特别要求时,可设为0。 newtio.c_cc[VTIME] = 0; newtio.c_cc[VMIN] = 0;;处理要写入的引用对象 tcflush函数刷清(抛弃)输入缓存(终端驱动程序已接收到,但用户程序尚未读)或输出缓存(用户程序已经写,但尚未发送)。 int tcflush(int filedes, int queue ) queue数应当是下列三个常数之一: ? TCIFLUSH 刷清输入队列。 ? TCOFLUSH 刷清输出队列。 ? TCIOFLUSH 刷清输入、输出队列。 如:tcflush(fd,TCIFLUSH);;激活配置。在完成配置后,需激活配置使其生效。使用tsettattr()函数。原型: int tcgetattr(int filedes, struct termios * termptr); int tcsetattr(int filedes, int opt, const struct termios * termptr); tcsetattr的参数opt使我们可以指定在什么时候新的终端属性才起作用。opt可以指定为下列常数中的一个: ? TCSANOW 更改立即发生。 ? TCSADRAIN 发送了所有输出后更改才发生??若更改输出参数则应使用此选择项。 ? TCSAFLUSH 发送了所有输出后更改才发生。更进一步,在更改发生时未读的所有输入数据都被删除(刷清) 使用如:tcsetattr(fd,TCSANOW,newtio);3、串口使用详解;3.1 打开串口;;3.2 读写串口

文档评论(0)

1亿VIP精品文档

相关文档