13_1_n62嵌入式Linux串口应用论文开发.ppt

  1. 1、本文档共46页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
串口应用编程 主讲教师:文全刚 wen_sir_125@163.com 内容提要 Linux下的串口驱动 Linux下的串口编程 标准I/O开发 一.Linux下的串口驱动 串口数据结构 用到的函数 串口设置 串口结构 最基本的设置串口包括波特率设置,效验位和停止位设置。 串口的设置主要是设置 struct termios 结构体的各成员值 struct termio {???????? unsigned short? c_iflag;??? /* 输入模式标志 */? ????????? unsigned short? c_oflag;?? /* 输出模式标志 */? ????????? unsigned short? c_cflag;??? /* 控制模式标志*/?? ????????? unsigned short? c_lflag;? /* local mode flags*/???????? ????????? unsigned char? c_line;?????????/* line discipline */????? ????????? unsigned char? c_cc[NCC];??? /* control characters */ }; 该结构位于include/asm/termios.h c_cflag:控制模式标志 用户设置波特率、字符大小、数据位、停止位、奇偶校验位和硬件流控等 其具体含义见P185表6.10 c_iflag: 输入模式标志 控制端口接收端的字符输入处理,其具体含义见P185表6.11 c_cc:控制字符 超时参数和控制字符的定义,具体见P186表6.12 2.用到的函数 int tcsetattr(int fd,int opt_DE,*ptr); 用来设置终端控制属性 fd:待操作的文件描述符 Opt_DE:选项值,有如下3个选项: TCSANNOW:不等数据传输完毕就立即改变属性 TCSADRAIN:等所有数据传输结束才改变属性 TCSAFLUSH:清空输入输出缓冲区才改变属性 *ptr:指向termios结构的指针 函数返回:成功返回0,失败返回-1 int tcgetattr(int fd,*ptr); 用来获取终端控制属性,它把串口的默认设置赋给了termios数据结构。 fd:待操作的文件描述符 *ptr:指向termios结构的指针 函数返回:成功返回0,失败返回-1 3.串口设置 获取原先串口的配置 激活本地连接和接收使能 设置波特率 设置字符大小 设置奇偶校验位 设置停止位 设置最少字符和等待时间 处理要写入的引用对象 激活配置 P187-188 //修改控制模式, 保证程序不会占用串口 new_opt.c_cflag |= CLOCAL; //修改控制模式,使得能够从串口中读取输入设置 new_opt.c_cflag |= CREAD; 设置数据位 new_opt.c_cflag = ~CSIZE; new_opt.c_cflag |= CS8; 效验位和停止位的设置: //修改new_opt结构中的串口输入输出波特率参数 cfsetispeed (new_opt, baud_rate); cfsetospeed (new_opt, baud_rate); Tcflush(fd,queue_selector) 在串口重新设置后,在此之前的数据要重新处理,处理方法取决于queue_selector: TCIFLUSH:刷新收到的数据但是不读 TCOFLUSH:刷新写入的数据但是不传送 TCIOFLUSH:同时刷新写入的数据但是不读,并且刷新写入的数据但是不传送 二.Linux下的串口编程 串口操作需要的头文件 串口常见操作 串口编程实例分析 1.串口操作需要的头文件 #include???? stdio.h????? /*标准输入输出定义*/ #include???? stdlib.h???? /*标准函数库定义*/ #include???? unistd.h???? /*Unix 标准函数定义*/ #include???? sys/types.h? #include???? sys/stat.h?? #include???? fcntl.h????? /*文件控制定义*/ #include???? termios.h??? /*PPSIX 终端控制定义*/ #include???? errno.h????? /*错误号定义*/ 2.串口操作常用函数 打开串口 串口设置 读写串口 关闭串口 打开串口 Linux 下串口文件是位于 /dev 下的 串口一 为 /dev/ttyS0 串口二 为 /dev/ttyS1 打

文档评论(0)

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

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

版权声明书
用户编号:6122115144000002

1亿VIP精品文档

相关文档