.
Word 资料
北京邮电大学
嵌入式系统实验
实验报告
学院:电子工程学院
专业:电子信息科学与技术
班级:2010211203班
学号:
姓名:
2013年11月13日
一、实验目的
1.基本实验
搭建PXA270嵌入式LINUX开发软硬件环境;安装LINUX操作系统;安装与配置建立宿主机端交叉编译调试开发环境;配置宿主机 PC 机端的minicom(或超级终端)、TFTP服务、NFS服务,使宿主PC机与PXA270开发板可以通过串口通讯,并开通TFTP和NFS服务。
2.人机接口
键盘驱动;LCD控制;触摸屏数据采集与控制实验;
3.应用实验
完成VGA显示;Web服务器实验;网络文件传输实验;多线程应用实验。
4.扩展应用实验
完成USB摄像头驱动与视频采集;GPS实验;GSM/GPRS通讯;视频播放移植;USB蓝牙设备无线通讯;NFS文件服务器;蓝牙视频文件服务器。
5.QT实验
完成基本嵌入式图形开发环境搭建;“Hello world!”QT初探;创建一个窗口并添加按钮;对象通信:Signal和Slot;菜单和快捷键;工具条和状态栏;鼠标和键盘事件;对话框;QT的绘图;俄罗斯方块;基于QT的GSM手机在嵌入式LINUX下的设计与实现。
二、实验内容
1.人机接口实验
键盘驱动实验
实验目的:矩阵键盘驱动的编写
实验内容:矩阵键盘驱动的编写
作业要求:完成键盘加减乘除运算
实验作业源码及注释:
#include
#include
#include
#include
#include
#include
#define DEVICE_NAME “/dev/keyboard”
int main(void){
int fd;
int ret;
unsigned char buf[1];
int i,f,j;
double x;
int a[2]={0};
char pre_scancode=0xff;
fd=open(DEVICE_NAME,O_RDWR);
if(fd==-1)printf(“open device %s error\n”,DEVICE_NAME);
else{
buf[0]=0xff;
i=0;f=0;
while(1){
read(fd,buf,1);
if(buf[0]!=pre_scancode)//判断是否放开按键
if(buf[0]!=0xff){//判断是否键入
pre_scancode=buf[0];
usleep(50000);
switch(buf[0]){
case 0x12:{//按下enter
switch(f){//判断运算符
case 1:{j=i;i=(i+1)%2;x=a[i]+a[j];printf(“%d+%d=%d”,a[i],a[j],x);break;}//加法
case 2:{j=i;i=(i+1)%2;x=a[i]-a[j];printf(“%d-%d=%d”,a[i],a[j],x);break;}//减法
case 3:{j=i;i=(i+1)%2;x=a[i]*a[j];printf(“%d*%d=%d”,a[i],a[j],x);break;}//乘法
case 4:{j=i;i=(i+1)%2;x=a[i]/a[j];printf(“%d/%d=%d”,a[i],a[j],x);break;}//除法
defauit:
}
f=0;break;
}
case 0x13:{f=1;i=(i+1)%2;break;}//键入运算符
case 0x14:{f=2;i=(i+1)%2;break;}
case 0x15:{f=3;i=(i+1)%2;break;}
case 0x16:{f=4;i=(i+1)%2;break;}
default:a[i]=buf[0];//存入数据
}
}
}
ret=close(fd);
}
return 0;
}
实验结果:
实验效果图
LCD控制实验
实验目的:了解LCD的基本原理
实验内容:使用总线方式驱动LCD模块,体会与QT下LCD显示的差别
作业要求:在目标板的LCD上显示彩色竖条纹或彩色圆环。
实验作业源码及注释:
#include
#include
#include
#include // open() close()
#