linux串口应用开发

linux串口应用开发

ID:39970289

大小:424.31 KB

页数:21页

时间:2019-07-16

linux串口应用开发_第1页
linux串口应用开发_第2页
linux串口应用开发_第3页
linux串口应用开发_第4页
linux串口应用开发_第5页
资源描述:

《linux串口应用开发》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、串口程序设计串口概述用户常见的数据通信的基本方式可分为(1)并行通信:用多条数据线将各位同时传送特点:传送速度快,适用于短距离、速度要求高的场合。(2)串行通信:用一条数据线一位位的顺序传送特点:成本低,适用于远距离、速度慢的场合。串行口是计算机一种常用接口。常用串口是RS-232-C接口(又称EIARS-232-C),是在1970年由美国电子工业协会(EIA)联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准。1串口程序设计异步串行I/O(UART)方式:将传输数据的每个字符一位接一位(例如先低位、后高位)地

2、传送。接收方对于同一根线上一连串的数字信号,首先要分割成位,再按位组成字符。为了恢复发送的信息,双方必须协调工作。在微型计算机中大量使用异步串行I/O方式,双方使用各自的时钟信号,而且允许时钟频率有一定误差,因此实现较容易。发送数据2串口程序设计串口通讯电缆接线方式3串口程序设计序号信号名称符号流向功能2发送数据TXDDTE→DCEDTE(数据终端设备)发送串行数据3接收数据RXDDTE←DCEDTE接收串行数据4请求发送RTSDTE→DCEDTE请求DCE(数据通讯设备)将线路切换到发送方式5允许发送CTSDTE←DCEDCE告诉DT

3、E线路已接通可以发送数据6数据设备准备好DSRDTE←DCEDCE准备好7信号地信号公共地8载波检测DCDDTE←DCE表示DCE接收到远程载波20数据终端准备好DTRDTE→DCEDTE准备好22振铃指示RIDTE←DCE表示DCE与线路接通,出现振铃串口的引脚说明4串口程序设计S3C2410X内部具有两个独立的UART控制器,每个控制器都可以工作在Interrupt模式或者DMA模式。同时,每个UART均具有16字节的FIFO,支持最高波特率230.4Kbps。串口配置主要包括波特率、起始位数量、数据位数量、停止位数量和流控协议。在

4、Linux下串口文件位于/dev下串口一为/dev/ttyS0串口二为/dev/ttyS15串口程序设计串口的设置主要是设置structtermios结构体的各成员值。structtermios{unsignedshortc_oflag;/*输出模式标志*/unsignedshortc_cflag;/*控制模式标志*/unsignedshortc_lflag;/*区域模式标志*unsignedcharc_line;/*行控制linediscipline*/unsignedcharc_cc[NCC];/*控制特性*/unsignedsho

5、rtc_iflag;/*输入模式标志*/};6串口程序设计1、设置参数的实现示例:tcgetattr(fd,&oldtio),该函数得到与fd指向对象的相关参数,并将他们保存于oldtio引用的结构中。保存原先配置if(tcgetattr(fd,&oldtio)!=0){Perror(“error”);Return-1;}7串口程序设计2、设置参数的实现示例:激活选项CLOCAL和CREADCLOCAL用于本地连接CREAD用于接收使能例:newtio.c_cflag

6、=CLOCAL

7、CREAD8串口程序设计3、设置参数的实现示例:设置

8、波特率输入波特率设置:cfsetispeed输出波特率设置:cfsetospeed例:cfsetispeed(&newtio,B19200);/*设置为19200Bps*/cfsetospeed(&newtio,B19200);9串口程序设计4、设置参数的实现示例:设置数据位大小首先去掉数据位中的掩码,在重新设置。例:newtio.c_cflag&=~CSIZE;newtio.c_cflag

9、=CS8;10串口程序设计5、设置参数的实现示例:设置奇校验位newtio.c_iflag

10、=(INPCK

11、ISTRIP)//INPCK奇偶校验使

12、能;ISTRIP除去奇偶校验位newtio.c_cflag

13、=PARODD;//奇校验newtio.c_cflag

14、=PARENB;//校验位使能课堂练习一:设置偶校验位newtio.c_iflag

15、=(INPCK

16、ISTRIP);newtio.c_cflag&=~PARODD;newtio.c_cflag

17、=PARENB;11串口程序设计6、设置参数的实现示例:设置停止位下面是设置停止位为1的代码:newtio.c_cflag&=~CSTOPB;设置最少字符和等待时间newtio.c_cc[VTIME]=0;newtio.c_cc[V

18、MIN]=0;12串口程序设计7、设置参数的实现示例:处理要写入的引用对象tcflush(fd,queue_selector);queue_selector取值如下:TCIFLUSH:刷新收到的数据但不读取

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。