linux串口编程

更新时间:2023-08-31 03:30:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

linux串口应用开发

1. 2. 3.

串口概述 串口设置 串口使用详解

http://www.77cn.com.cn

1、串口概述 、串口概述

用户常见的数据通信的基本方式有两种:

并行通信; 串行通信; 串行通信是计算机常用的接口,如:RS-232C接口。该标准规定采用一个DB25芯引脚连接器 或DB9芯引脚连接器。 芯片内部常具有UART控制器,其可工作于 Interrupt(中断模式)或DMA(直接内存访问) 模式。

http://www.77cn.com.cn

UART的操作主要包括以下几个部分: 数据发送; 数据接收; 产生中断; 产生波特率; Loopback模式; 红外模式; 自动流控模式; 串口参数的配置主要包括:波特率、数 据位、停止位、流控协议。

http://www.77cn.com.cn

linux中的串口设备文件存放于/dev 目录下,其中串口一,串口二对应设备名 依次为“/dev/ttyS0”、“/dev/ttyS1”。 在linux下操作串口与操作文件相同。

http://www.77cn.com.cn

2、串口详细配置 、

在使用串口之前必须设置相关配置, 包括:波特率、数据位、校验位、停止位 等。串口设置由下面结构体实现:

http://www.77cn.com.cn

该结构中c_cflag最为重要,可设置波特率、数据位、校 验位、停止位。在设置波特率时需在数字前加上‘B’,如 B9600。B19200。使用其需通过“与”“或”操作方式。

http://www.77cn.com.cn

输入模式c_iflag成员控制端口接收端的字符 输入处理。

http://www.77cn.com.cn

串口控制函数

Tcgetattr Tcsetattr cfgetispeed Cfgetospeed Cfsetispeed Cfsetospeed Tcdrain tcflow tcflush Tcsendbreak tcgetpgrp tcsetpgrp 取属性(termios结构) 设置属性(termios结构) 得到输入速度 得到输出速度 设置输入速度 设置输出速度 等待所有输出都被传输 挂起传输或接收 刷清未决输入和/或输出 送BREAK字符 得到前台进程组ID 设置前台进程组ID

http://www.77cn.com.cn

2.1串口配置流程 串口配置流程

1.

保存原先串口配置使用tcgetattr(fd,&oldtio)函数 struct termios newtio,oldtio; tcgetattr( fd,&oldtio ); 激活选项有CLOCAL和CREAD,用于本地连接和接收使能。 newtio.c_cflag | = CLOCAL | CREAD; 设置波特率,使用函数cfsetispeed、 cfsetospeed cfsetispeed(&newtio, B115200); cfsetospeed(&newtio, B115200);

http://www.77cn.com.cn

2.

3.

4.

设置数据位,需使用掩码设置。 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;

http://www.77cn.com.cn

5.

5.

设置停止位,通过激活c_cflag中的CSTOPB实 现。若停止位为1,则清除CSTOPB,若停止位 为2,则激活CSTOPB。 newtio.c_cflag &= ~CSTOPB; 设置最少字符和等待时间,对于接收字符和 等待时间没有特别要求时,

本文来源:https://www.bwwdw.com/article/2m5i.html

Top