微机习题daanchap11章节.ppt

  1. 1、本文档共37页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Linux下驱动程序设计示例 Linux操作系统对串口有着很好的支持,其中的串口驱动程序对用户屏蔽了底层硬件的相关信息,而且为用户提供了一系列的标准调用函数,极大的方便了串口通信的操作。用户编写串口应用程序的时候不需要考虑硬件相关的问题,只需要根据Linux操作系统提供的调用函数来实现自己需要的功能。 在Linux操作系统下,串口是被当做文件来对待的,因此对它进行数据收发等效于对文件进行读写操作。对串口的操作一般分为四个步骤:打开串口、设置串口、读写串口和关闭串口。 (1)打开串口 在ARM平台中Linux操作系统下的串口设备文件为/dev/ttySAC0。 示例程序如下: int fd; fd = open( /dev/ttySAC0, O_RDWR) ; /*以读写方式打开串口*/ if (fd == -1) ; /*如果打开串口错误则输出提示信息*/ { perror(Cant Open Serial Port); } (2)设置串口 与无操作系统的情况下对串口进行初始化设置类似,在Linux下最基本的串口设置工作主要包括波特率、校验位和停止位的设置,其设置方式主要是对struct termios结构体各成员值进行设置。 在不同应用中通常需要设置的波特率及数据格式等参数都不一样,可以将结构体成员赋值的功能编写成函数,通过对该函数入口参数的修改,即可方便的实现不同的设置。 波特率设置函数 void set_speed(int fd, int speed){ int i; int status; struct termios Opt; tcgetattr(fd, Opt); /*得到机器原端口的默认设置*/ for ( i= 0; i sizeof(speed_arr) / sizeof(int); i++) { if (speed == name_arr[i]) { tcflush(fd, TCIOFLUSH); /*清除输入/输出数据*/ cfsetispeed(Opt, speed_arr[i]); //设置输入波特率 cfsetospeed(Opt, speed_arr[i]); //设置输出波特率 status = tcsetattr(fd, TCSANOW, Opt); //将设置写入串口 if (status != 0) { perror(tcsetattr fd1); return; } tcflush(fd,TCIOFLUSH); } } } 数据格式设置函数 int set_Parity(int fd,int databits,int stopbits,int parity) { struct termios options; if ( tcgetattr( fd,options) != 0) { /*得到机器原端口的默认设置*/ perror(SetupSerial 1); return(FALSE); } options.c_cflag = ~CSIZE; switch (databits) //设置数据位个数 { case 7: options.c_cflag |= CS7; //设置数据位为7位 break; case 8: options.c_cflag |= CS8; //设置数据位为8位 break; default: fprintf(stderr,Unsupported data sizen); return (FALSE); } 数据格式设置函数 switch (stopbits) //设置停止位个数 { case 1: options.c_cflag = ~CSTOPB; //设置停止位为1位 break; case 2: options.c_cflag |= CSTOPB; //设置停止位为2位 break; default: fprintf(stderr,Unsupported stop bit

文档评论(0)

开心农场 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档