第8讲ARM-Linux串口通信程序设计.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
串口程序相关函数 串口参数设定和文件操作的几个重要函数 打开串口 int open(“DE_name”,int open_Status) 参数说明: (1).DE_name:要打开的设备文件名 比如要打开串口1,即为/dev/ttyS0。 (2).open_Status:文件打开方式,可采用下面的文件打开模式; 函数返回值:成功返回文件描述符,如果失败返回-1 int fd; /* 文件描述符 */ fd = open(/dev/ttyS0, O_RDWR | 0_NOCTTY); /*以读写方式打开设备*/ if(fd == -1) perror( open ttyS0/n!);/*打开失败时的错误提示*/ close(fd); 参数说明: fd:文件描述符 函数返回值:成功返回0,失败返回-1。 串口配置与终端标准结构体 控制选项c_cflag c_lflag c_cc 串口设置函数 tcsetattr int tcsetattr(int fd,int opt_DE,*ptr)该函数用来设置终端控制属性,其参数说明如下: fd:待操作的文件描述符 opt_DE:选项值,有三个选项以供选择: TCSANOW: 不等数据传输完毕就立即改变属性 TCSADRAIN:等待所有数据传输结束才改变属性 TCSAFLUSH:清空输入输出缓冲区才改变属性 *ptr:指向termios结构的指针 函数返回值:成功返回0,失败返回-1。 tcgetattr int tcgetattr(int fd,*ptr)该函数用来获取终端控制属性,它把串口的默认设置赋给了termios数据数据结构,其参数说明如下: fd:待操作的文件描述符 *ptr:指向termios结构的指针 函数返回值:成功返回0,失败返回-1。 tcflush int tcflush(int fd,int quene) 参数说明: quene取值及含义: *TCIFLUSH 清除输入队列 *TCOFLUSH 清除输出队列 *TCIOFLUSH 清除输入、输出队列 举例:tcflush(fd,TCIOFLUSH); 另加的说明:在打开串口后,用户其实已经可以开始从串口读取数据了,但如果用户没有读取,数据将被将保存在缓冲区里。如果用户不想要开始的一段数据,或者发现缓冲区数据有误,可以使用这个函数将缓冲区清空。 应用举例:tcflush(fd, TCIOFLUSH); sleep(2); read_len = read(fd, buff, 10); 读操作 串口写操作write()(发送端) 函数原型如下: write(int fd, *buffer,length); 参数说明: (1).fd:文件描述符 (2).*buffer:存储写入数据的数据缓冲区 (3).length:写入缓冲去的数据字节数 函数返回值: 成功返回写入数据的字节数,该值通常等于length,如果写入失败返回-1。 发送数据 char buffer[1024]; int Length; int nByte; nByte = write (fd , buffer ,Length) 读取串口数据 char buff[1024]; int Len; int readByte; readByte = read( fd , buff, Len); 实例 终端速度控制cfgetispeed,cfgetospeed,cfsetispeed,cfsetospeed 获取和设置输入、输出速度函数: int cfgetispeed (struct termios *tp) ; int cfsetispeed (struct termios *tp , speed_t speed); int cfgetospeed (struct termios *tp); int cfsetospeed (struct termios *tp , speed_t speed); 速度定义 波特率的设置定义在asm/termbits.h 例如 B4800------?4800 B9600------?9600 B19200-----?19200 B38400------?38400 B57600------?57600 B115200-----?115200 速度设置举例 #include stdio.h //头文件定义 ........ struct termios opt; /*定义指向termios 结构类型的指针opt

文档评论(0)

liudao + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档