文档详情

Linux下的串口编程.docx

发布:2016-08-19约2.12万字共28页下载文档
文本预览下载声明
Linux下的串口编程(二)分类:?Linux?S303-21 15:52?5557人阅读?评论(1)?收藏?举报linux编程终端terminalstruct测试Linxu下的串口编程(二)?/************声明:本人只是见到这篇文章对我帮助很大才转载的,但是这个完整的程序里面本来有语法错误的,现在让我改过来了************/---------------------------------------------------------Author?????????????:tiger-johnWebSite????????????:/tigerjbEmail???????????????:jibo.tiger@Update-Time???: 2011年2月14日星期一?Tiger声明:本人鄙视直接复制本人文章而不加出处的个人或团体,但不排斥别人转载tiger-john的文章,只是请您注明出处并和本人联系或留言给我。3Q---------------------------------------------------------??前面已经提到过Linux下皆为文件,这当然也包括我们今天的主角àUART0串口。因此对他的一切操作都和文件的操作一样(涉及到了open,read,write,close等文件的基本操作)。一.Linux下的串口编程又那几部分组成??1.????打开串口2.????串口初始化3.????读串口或写串口4.????关闭串口二.串口的打开既然串口在linux中被看作了文件,那么在对文件进行操作前先要对其进行打开操作。1.在Linxu中,串口设备是通过串口终端设备文件来访问的,即通过访问/dev/ttyS0,/dev/ttyS1,/dev/ttyS2这些设备文件实现对串口的访问。2.调用open()函数来代开串口设备,对于串口的打开操作,必须使用O_NOCTTY参数。l??O_NOCTTY:表示打开的是一个终端设备,程序不会成为该端口的控制终端。如果不使用此标志,任务一个输入(eg:键盘中止信号等)都将影响进程。l??O_NDELAY:表示不关心DCD信号线所处的状态(端口的另一端是否激活或者停止)。3.打开串口模块有那及部分组成1调用open()函数打开串口,获取串口设备文件描述符2获取串口状态,判断是否阻塞3测试打开的文件描述符是否为终端设备??????4程序:/******************************************************************?名称:????????????????????UART0_Open*?功能:????????????????????打开串口并返回串口设备文件描述*?入口参数:????????????fd????:文件描述符?????port :串口号(ttyS0,ttyS1,ttyS2)*?出口参数:????????????正确返回为1,错误返回为0*****************************************************************/int UART0_Open(int fd,char* port){???????fd = open( port, O_RDWR|O_NOCTTY|O_NDELAY);??????if (FALSE == fd)?????????????{????????????????????perror(Cant Open Serial Port);????????????????????return(FASLE);?????????????}??//判断串口的状态是否为阻塞状态??????????????????????????????if(fcntl(fd, F_SETFL, 0) 0)??????{?????????????printf(fcntl failed!/n);???????????return(FALSE);??????}???????else??{???????printf(fcntl=%d/n,fcntl(fd, F_SETFL,0));??}??//测试是否为终端设备??????if(0 == isatty(STDIN_FILENO))??????{?????????????printf(standard input is not a terminal device/n);????????return(FALSE);??????}??else??????{???????????printf(isatty success!/n);??????}?????????printf(fd-open=%
显示全部
相似文档