好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

串口程序设计PPT课件.ppt

21页
  • 卖家[上传人]:汽***
  • 文档编号:591370401
  • 上传时间:2024-09-17
  • 文档格式:PPT
  • 文档大小:124.50KB
  • / 21 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • IT Education & TrainingIT Education & Training串口程序设计•串口概述串口概述    用户常见的数据通信的基本方式可分为用户常见的数据通信的基本方式可分为((1)并行通信:用多条数据线将各位同时传送)并行通信:用多条数据线将各位同时传送  特点:传送速度快,适用于短距离、速度要求高的场合特点:传送速度快,适用于短距离、速度要求高的场合2)串行通信:用一条数据线一位位的顺序传送)串行通信:用一条数据线一位位的顺序传送  特点:成本低,适用于远距离、速度慢的场合特点:成本低,适用于远距离、速度慢的场合            串行口是计算机一种常用接口常用串口是串行口是计算机一种常用接口常用串口是 RS-232-C 接口接口(又称(又称 EIA RS-232-C),是在),是在 1970 年由美国电子工业协会年由美国电子工业协会((EIA)联合贝尔系统、)联合贝尔系统、 调制解调器厂家及计算机终端生产调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准厂家共同制定的用于串行通讯的标准1 IT Education & TrainingIT Education & Training串口程序设计•异步串行异步串行 I /O ((UART)方式)方式:将传输数据的每个:将传输数据的每个字符一位接一位字符一位接一位(例如先低位、后高位例如先低位、后高位)地传送。

      地传送•接收方对于同一根线上一连串的数字信号,接收方对于同一根线上一连串的数字信号,首先要首先要分割成位,再按位组成字符分割成位,再按位组成字符为了恢复发送的信息,为了恢复发送的信息,双方必须协调工作在微型计算机中大量使用异步双方必须协调工作在微型计算机中大量使用异步串行串行 I//O 方式,双方使用各自的时钟信号,而且允方式,双方使用各自的时钟信号,而且允许时钟频率有一定误差,因此实现较容易许时钟频率有一定误差,因此实现较容易 发送数据发送数据2 IT Education & TrainingIT Education & Training串口程序设计•串口通讯电缆接线方式串口通讯电缆接线方式           3 IT Education & TrainingIT Education & Training串口程序设计序号序号信号名称信号名称符号符号流向流向功能功能2 2发送数据发送数据TXDTXDDTE→DCEDTE→DCEDTEDTE((数据终端设备)数据终端设备)发送串行数据发送串行数据3 3接收数据接收数据RXDRXDDTE←DCEDTE←DCEDTE DTE 接收串行数据接收串行数据4 4请求发送请求发送RTSRTSDTE→DCEDTE→DCEDTE DTE 请求请求 DCEDCE(数据通讯设备)(数据通讯设备)将线将线路切换到发送方式路切换到发送方式5 5允许发送允许发送CTSCTSDTE←DCEDTE←DCEDCE DCE 告诉告诉 DTE DTE 线路已接通可以发送数线路已接通可以发送数据据6 6数据设备准备好数据设备准备好DSRDSRDTE←DCEDTE←DCEDCE DCE 准备好准备好      7 7信号地信号地      信号公共地信号公共地8 8载波检测载波检测DCDDCDDTE←DCEDTE←DCE表示表示 DCE DCE 接收到远程载波接收到远程载波2020数据终端准备好数据终端准备好DTRDTRDTE→DCEDTE→DCEDTE DTE 准备好准备好2222振铃指示振铃指示RIRIDTE←DCEDTE←DCE表示表示 DCE DCE 与线路接通,出现振铃与线路接通,出现振铃• 串口的引脚说明串口的引脚说明4 IT Education & TrainingIT Education & Training串口程序设计•S3C2410X内部具有两个独立的UART控制器,每个控制器都可以工作在Interrupt模式或者DMA模式。

      同时,每个UART均具有16字节的FIFO,支持最高波特率•串口配置主要包括波特率、起始位数量、数据位数量、停止位数量和流控协议•在 Linux 下串口文件位于 /dev 下 串口一串口一 为为 /dev/ttyS0 串口二串口二 为为 /dev/ttyS1 5 IT Education & TrainingIT Education & Training串口程序设计•串口的设置串口的设置•主要是设置主要是设置 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; /* 输入模式标志输入模式标志 */}; 6 IT Education & TrainingIT Education & Training串口程序设计•1、设置参数的实现示例:、设置参数的实现示例:    tcgetattr((fd,,&oldtio),该函数得到与),该函数得到与fd指向对象指向对象的相关参数,并将他们保存于的相关参数,并将他们保存于oldtio引用的结构中。

      引用的结构中保存原先配置保存原先配置   if(tcgetattr(fd,&oldtio)!=0)  {       Perror(“error ”);       Return -1;  }  7 IT Education & TrainingIT Education & Training串口程序设计•2、设置参数的实现示例:、设置参数的实现示例:激活选项激活选项CLOCAL和和CREAD   CLOCAL用于本地连接用于本地连接   CREAD用于接收使能用于接收使能       例:例: |= CLOCAL | CREAD8 IT Education & TrainingIT Education & Training串口程序设计•3、设置参数的实现示例:、设置参数的实现示例:设置波特率设置波特率输入波特率设置:输入波特率设置:cfsetispeed输出波特率设置:输出波特率设置:cfsetospeed例:例:cfsetispeed(&newtio,B19200); /*设置为设置为19200Bps*/cfsetospeed(&newtio,B19200);9 IT Education & TrainingIT Education & Training串口程序设计•4、设置参数的实现示例:、设置参数的实现示例:设置数据位大小设置数据位大小  首先去掉数据位中的掩码,在重新设置。

      首先去掉数据位中的掩码,在重新设置例:例:      &=~CSIZE;      |=CS8;10 IT Education & TrainingIT Education & Training串口程序设计•5、设置参数的实现示例:、设置参数的实现示例:设置奇校验位设置奇校验位   |=(INPCK | ISTRIP)//INPCK奇偶校验使能;奇偶校验使能;ISTRIP 除去奇偶校验位除去奇偶校验位    |= PARODD;//奇校验奇校验    |= PARENB;//校验位使能校验位使能课堂练习一:设置偶校验位课堂练习一:设置偶校验位 •   |=(INPCK | ISTRIP);•  &=~ PARODD;•  |= PARENB;11 IT Education & TrainingIT Education & Training串口程序设计•6、设置参数的实现示例:、设置参数的实现示例: 设置停止位设置停止位    下面是设置停止位为下面是设置停止位为1的代码:的代码:      &= ~CSTOPB; 设置最少字符和等待时间设置最少字符和等待时间    newtio.c_cc[VTIME] =0;    newtio.c_cc[VMIN]=0;12 IT Education & TrainingIT Education & Training串口程序设计•7、设置参数的实现示例:、设置参数的实现示例: 处理要写入的引用对象处理要写入的引用对象    tcflush(fd,queue_selector);    queue_selector取值如下:取值如下:    TCIFLUSH:刷新收到的数据但不读取刷新收到的数据但不读取    TCOFLUSH:刷新写入的数据但是不传送刷新写入的数据但是不传送    TCIOFLUSH:同时刷新收到的数据但是不读,并且同时刷新收到的数据但是不读,并且刷新写入的数据但是不传送刷新写入的数据但是不传送    例如采用第三种方法:例如采用第三种方法: tcflush(fd,TCIOFLUSH);13 IT Education & TrainingIT Education & Training串口程序设计•8、设置参数的实现示例:、设置参数的实现示例: 激活配置激活配置    tcsetattr(fd,OPTION,&newtio);    OPTION的选项如下:的选项如下:    TCSANOW:改变的配置立即生效改变的配置立即生效    TCSADRAIN:改变的配置在所有写入改变的配置在所有写入fd的输出结束后的输出结束后生效生效    TCSAFLUSH:改变的配置在所有写入改变的配置在所有写入fd引用对象的输引用对象的输出都被结束后生效,所有已接受但未读入的输入都在改出都被结束后生效,所有已接受但未读入的输入都在改变发生前丢弃变发生前丢弃   例如:想使改变立即生效例如:想使改变立即生效 tcsetattr(fd,TCSANOW,&newtio);14 IT Education & TrainingIT Education & Training串口程序设计•串口操作需要的头文件串口操作需要的头文件 #include     <>      /*标准输入输出定义标准输入输出定义*/#include     <>     /*标准函数库定义标准函数库定义*/#include     <>     /*Unix 标准函数定义标准函数定义*/#include      /*定义系统类型定义系统类型 */#include        /*定义文件信息定义文件信息*/#include     <>        /*文件控制定义文件控制定义*/#include     <>   /*终端控制定义终端控制定义*/#include     <>       /*错误号定义错误号定义*/ 15 IT Education & TrainingIT Education & Training串口程序设计•打开串口打开串口在在 Linux 下串口文件位于下串口文件位于 /dev 下下 串口一串口一 为为 /dev/ttyS0 串口二串口二 为为 /dev/ttyS1 {int fd;/*以读写方式打开串口以读写方式打开串口*/fd = open( "/dev/ttyS0", O_RDWR);if (-1 == fd){ /* 不能打开串口不能打开串口*/ perror(" 提示错误!提示错误!");} •设置串口设置串口    串口的设置主要是设置串口的设置主要是设置 struct termios 结构体的各成员值结构体的各成员值 。

      16 IT Education & TrainingIT Education & Training串口程序设计•设置参数的实现示例:设置参数的实现示例:tcgetattr(fd,&oldtio); /*储存当前串口设定储存当前串口设定          *//*控制标志设定,含义如下:控制标志设定,含义如下:                          *//*BAUDRATE:设定:设定 bps 的速度的速度              *//*CRTSCTS:硬体流量控制:硬体流量控制              *//*CS8::8n1 (8 位,无校验位,位,无校验位,1 个终止位个终止位) *//*CLOCAL:本地连线,没有主机控制功能:本地连线,没有主机控制功能*//*CREAD:: 只能接收字元只能接收字元*/ = BAUDRATE | CRTSCTS | CS8 | CLOCAL | CREAD; = IGNPAR; /*忽略奇偶校验位忽略奇偶校验位*/ = 0;/* Raw 模式输出模式输出*/ = 0;/*非标准型输入,不回应非标准型输入,不回应*/newtio.c_cc[VMIN]=1; /*在读取到在读取到 1 个字元前先停止个字元前先停止*/newtio.c_cc[VTIME]=0;/*不使用分割字元组的计时器不使用分割字元组的计时器*/tcflush(fd, TCIFLUSH); /*清除串口缓冲区清除串口缓冲区*/tcsetattr(fd,TCSANOW,&newtio);/*设置串口新参数设置串口新参数*/ 17 IT Education & TrainingIT Education & Training串口程序设计•读写串口读写串口发送数据发送数据     char  buffer[1024];    int    Length;    int    nByte;    nByte = write (fd , buffer ,Length) 读取串口数据读取串口数据 char  buff[1024];int    Len;int  readByte;;    readByte =  read( fd , buff, Len); 18 IT Education & TrainingIT Education & Training串口程序设计•关闭串口关闭串口 关闭串口就是关闭文件关闭串口就是关闭文件close(fd); 19 IT Education & TrainingIT Education & Training串口程序设计•串口参数设定和文件操作的几个重要函数串口参数设定和文件操作的几个重要函数函数名函数名描述描述举例举例open打开串口文件打开串口文件open("/dev/ttyS0",O_RDWR)tcgetattr保存当前串口设置保存当前串口设置tcgetattr(fd,&oldtio)tcsetattr设置串口参数设置串口参数tcsetattr(fd,TCSANOW,&newtio)read从串口中读数据从串口中读数据read(fd, buff, Len)tcflush清除串口缓冲区清除串口缓冲区tcflush(fd, TCIFLUSH);write向串口中写数据向串口中写数据write(fd, buffer ,Length)close关闭串口文件关闭串口文件close(fd);完整实例完整实例20 IT Education & TrainingIT Education & TrainingThank you谢谢21 。

      点击阅读更多内容
      相关文档
      2025国开山东开大《土质学与土力学》形成性考核123答案+终结性考核答案.docx 中学综合素质知识点梳理【中学教师资格证】.docx 2025国开山东开大《特许经营概论》形成性考核123答案+终结性考核答案.doc 2025年高考英语全国一卷真题(含答案).docx 2025国开山东《农民专业合作社创建与管理》形成性考核123答案+终结性考核答案.docx 2025国开山东开大《自然现象探秘》形成性考核123答案+终结性考核答案.docx 2025国开山东《消费心理学》形成性考核123答案+终结性考核答案.doc 2025国开山东《小微企业管理》形成性考核123答案+终结性考核答案.doc 2025国开山东开大《资本经营》形成性考核123答案+终结性考试答案.docx 2025国开山东《小学生心理健康教育》形考123答案+终结性考试答案.docx 2025国开《视频策划与制作》形考任务1-4答案.docx 2025国开《亲子关系与亲子沟通》形考任务234答案+期末大作业答案.docx 2025国开电大《煤矿地质》形成性考核123答案.docx 2025国开电大《冶金原理》形考任务1234答案.docx 2025国开《在线学习项目运营与管理》形考任务1234答案.doc 2025国开电大《在线教育的理论与实践》阶段测验1-4答案.docx 2024 年注册环保工程师《专业基础考试》真题及答案解析【完整版】.docx 环保工程师---2023 年注册环保工程师《专业基础考试》真题及答案解析【完整版】.docx 2025国开《液压与气压传动》形考任务一参考答案.docx 2025年春江苏开放大学教育研究方法060616计分:形成性作业2、3答案.docx
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.