网站大量收购闲置独家精品文档,联系QQ:2885784924

Linux串口应用开发.ppt

  1. 1、本文档共21页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
样本文案讨论稿 串口程序设计 串口概述 用户常见的数据通信的基本方式可分为 (1)并行通信:用多条数据线将各位同时传送 特点:传送速度快,适用于短距离、速度要求高的场合。 (2)串行通信:用一条数据线一位位的顺序传送 特点:成本低,适用于远距离、速度慢的场合。 串行口是计算机一种常用接口。常用串口是 RS-232-C 接口(又称 EIA RS-232-C),是在 1970 年由美国电子工业协会(EIA)联合贝尔系统、 调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准。 串口程序设计 异步串行 I /O (UART)方式:将传输数据的每个字符一位接一位(例如先低位、后高位)地传送。 接收方对于同一根线上一连串的数字信号,首先要分割成位,再按位组成字符。为了恢复发送的信息,双方必须协调工作。在微型计算机中大量使用异步串行 I/O 方式,双方使用各自的时钟信号,而且允许时钟频率有一定误差,因此实现较容易。 串口程序设计 串口程序设计 串口程序设计 S3C2410X内部具有两个独立的UART控制器,每个控制器都可以工作在Interrupt模式或者DMA模式。同时,每个UART均具有16字节的FIFO,支持最高波特率230.4Kbps。 串口配置主要包括波特率、起始位数量、数据位数量、停止位数量和流控协议。 在 Linux 下串口文件位于 /dev 下 串口一 为 /dev/ttyS0 串口二 为 /dev/ttyS1 串口程序设计 串口的设置 主要是设置 struct termios 结构体的各成员值 。 struct termios { unsigned short c_oflag; /* 输出模式标志 */ unsigned short c_cflag; /* 控制模式标志*/ unsigned short c_lflag; /*区域模式标志 * unsigned char c_line; /*行控制line discipline */ unsigned char c_cc[NCC]; /* 控制特性 */ unsigned short c_iflag; /* 输入模式标志 */ }; 串口程序设计 1、设置参数的实现示例: tcgetattr(fd,oldtio),该函数得到与fd指向对象的相关参数,并将他们保存于oldtio引用的结构中。 保存原先配置 if(tcgetattr(fd,oldtio)!=0) { Perror(“error ”); Return -1; } 串口程序设计 2、设置参数的实现示例: 激活选项CLOCAL和CREAD CLOCAL用于本地连接 CREAD用于接收使能 例:newtio.c_cflag |= CLOCAL | CREAD 串口程序设计 3、设置参数的实现示例: 设置波特率 输入波特率设置:cfsetispeed 输出波特率设置:cfsetospeed 例: cfsetispeed(newtio,B19200); /*设置为19200Bps*/ cfsetospeed(newtio,B19200); 串口程序设计 4、设置参数的实现示例: 设置数据位大小 首先去掉数据位中的掩码,在重新设置。 例: newtio.c_cflag =~CSIZE; newtio.c_cflag |=CS8; 串口程序设计 5、设置参数的实现示例: 设置奇校验位 newtio.c_iflag|=(INPCK | ISTRIP)//INPCK奇偶校验使能;ISTRIP 除去奇偶校验位 newtio.c_cflag |= PARODD;//奇校验 newtio.c_cflag |= PARENB;//校验位使能 课堂练习一:设置偶校验位 串口程序设计 6、设置参数的实现示例: 设置停止位 下面是设置停止位为1的代码: newtio.c_cflag = ~CSTOPB; 设置最少字符和等待时间 newtio.c_cc[VTIME] =0; newtio.c_cc[VMIN]=0; 串口程序设计 7、设置参数的实现示例: 处理要写入的引用对象 tcflush(fd,queue_selector); queue_selector取值如下: TCIFLUSH:刷新收到的数据但不读取 TCOFLUSH:刷新写入的数据但是不传送 TCIOFLUSH:同时刷新收到的数据但是不读,并

文档评论(0)

wendan118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档