毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 论文 >> 正文

XScale的远程步进机控制系统+GSM短信系统 第11页

更新时间:2012-2-29:  来源:毕业论文
系统总体设计流程系统总体设计流程主要做的是软件的设计,其中有驱动程序和应用程序的编写,以完成短信的接收,然后根据接收到的内容控制步进机,在反馈信息给用户[11][12]。设计流程如图5-2图5-2  系统总体设计流程图 本文来自辣.文~论^文·网原文请找腾讯324-9114
第6章 系统软件设计
6.1串口通信模块
在嵌入式Linux中,串口是一个字符设备,串口编程与操作文件类似,只需要先打开串口设备文件,再设置相关的参数与属性[7][15],串口流程如图6-1所示。
图6-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>     //POSIX中断控制定义
#include <errno.h>        //错误号定义
在Qt 开发软件中,没有专门用于对终端设备进行操作的类或控件,为了对终端设备进行操作,一种方法就是利用Linux 底层终端函数直接在应用程序中对终端设备进行编程操作,但这样编程比较麻烦,而且无法实现代码重用。另一种方法就是将终端设备的操作函数封装成类的形式,这样不仅编程方便而且可以实现代码重用。所以本系统采第二种方法将串口封装成类,类名为MySerial,它包含了3个函数,分别是:
1.static int set_opt(int fd,int nSpeed, int nBits, char nEvent, int nStop);
该函数实现了设置串口的一些参数,fd是用open()打开的串口设备文件标句柄,nSpeed是波特率,nBits是数据位,nEvent是奇偶效验,nStop是停止位。若失败则返回0。
把三个函数都设置成为静态函数就可方便的进行调用或者设置。
串口能否通信的关键问题是串口属性的设置,在linux中对底层终端操作中有一个用于查询和操作终端的标准接口结构体 termios,所以设置串口属性也就是设置该结构体的各成员值:
struct termio{
struct termios{
tcflag_t c_iflag; /* 输入模式标志 */
tcflag_t c_oflag; /* 输出模式标志 */
tcflag_t c_cflag; /* 控制模式标志*/
tcflag_t c_lflag; /* 本地模式标志*/
tcflag_t c_lflag; /* 行规程类型,一般应用程序不使用*/
cc_t c_cc[NCCS]; /* 控制字符*/
};
设置串口的步骤如下:
(1) 在Linux中,串口以串行终端的方式进行处理,因而,可以使用tcgetattr()函数获取串口的参数
  tcgetattr( fd,&oldtio );
(2) 控制模式标志选项有CLOCAL和CREAD,用于不适用MODEM或者是抽口没有论文网http://www.751com.cn/  CD脚和启用接收装置。
   newtio.c_cflag | =  CLOCAL | CREAD;
(3) 使用cfsetispeed()/cfsetospeed()函数设置波特率,他们分别用于在termios结构体重设置输入和输出的波特率。
     cfsetispeed(&newtio, B9600);
  cfsetospeed(&newtio, B9600);
(4) 关闭字符长度掩码,设置8位数据位标志
 newtio.c_cflag &= ~CSIZE; 本文来自辣.文~论^文·网原文请找腾讯3249'114
 newtio.c_cflag |= CS8;
(5) 如下设置奇偶校验位。

 << 上一页  [11] [12] 下一页

XScale的远程步进机控制系统+GSM短信系统 第11页下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©751com.cn 辣文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。