linux串口编程.ppt
上传人:qw****27 上传时间:2024-09-12 格式:PPT 页数:17 大小:250KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

linux串口编程.ppt

linux串口编程.ppt

预览

免费试读已结束,剩余 7 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

linux串口应用开发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函数刷清(抛弃)输入缓存(终端驱动程序已接收到,但用户程序尚未读)或输出缓存(用户程序已经写,但尚未发送)。inttcflush(intfiledes,intqueue)queue数应当是下列三个常数之一:•TCIFLUSH刷清输入队列。•TCOFLUSH刷清输出队列。•TCIOFLUSH刷清输入、输出队列。如:tcflush(fd,TCIFLUSH);激活配置。在完成配置后,需激活配置使其生效。使用tsettattr()函数。原型:inttcgetattr(intfiledes,structtermios*termptr);inttcsetattr(intfiledes,intopt,conststructtermios*termptr);tcsetattr的参数opt使我们可以指定在什么时候新的终端属性才起作用。opt可以指定为下列常数中的一个:•TCSANOW更改立即发生。•TCSADRAIN发送了所有输出后更改才发生。若更改输出参数则应使用此选择项。•TCSAFLUSH发送了所有输出后更改才发生。更进一步,在更改发生时未读的所有输入数据都被删除(刷清)使用如:tcsetattr(fd,TCSANOW,&newtio)3、串口使用详解3.1打开串口3.2读写串口