- 1、本文档共46页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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 打
您可能关注的文档
- 10kV配电网供电可靠性技术的分析.doc
- 10创造性测量和评价.ppt
- 10择业心理咨询.ppt
- 10月报纸(改) 2.doc
- 11-5房地产新闻热点.doc
- 11.1.2三角形高、中线和角平分线+三角形稳定性.ppt
- 12_基于LabVIEW真空数据快采系统_陈强.ppt
- 12年导游年审样题.doc
- 12汽车-系统科学思路和方法.ppt
- 12章 货币需求.ppt
- 人教版数学六年级上册 第一单元 第5课时 分数乘小数.pptx
- 人教版数学六年级上册 第四单元 第3课时 比的应用.pptx
- 人教版数学六年级上册 第五单元 第5课时 圆的面积-2.pptx
- 人教版数学六年级上册 第一单元 第7课时 解决问题-1.pptx
- 人教版数学六年级下册 第二单元 第4课时 利率.pptx
- 人教版数学六年级上册 第一单元 第8课时 解决问题-2.pptx
- 人教版数学六年级下册 第五单元 第2课时 鸽巢问题的一般形式.pptx
- 人教版数学六年级下册 第四单元 整理和复习.pptx
- 人教版数学六年级上册 第一单元 第3课时 分数乘分数-1.pptx
- 人教版数学六年级下册 第六单元复习第2课时 可能性.pptx
文档评论(0)