北邮嵌入式linux开发,北邮嵌入式系统实验报告完整版

41528d3028836879cd698677c3999917.gif北邮嵌入式系统实验报告完整版

北京邮电大学 嵌入式系统实验 实验报告 学院:电子工程学院 专业:电子信息科学与技术 班级:班 学号: 姓名: 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() #include // read() write() #define DEVICE_NAME “/dev/fb“ #define VERSION “PXA2700EP-LCD-V1.00-“ void showversion(void) { printf(“*********************************************\n“); printf(“\t %s \t\n“, VERSION); printf(“*********************************************\n\n“); } int main(void) { int fd; int ret; int i,j,r,R; unsigned short buf[640*480]; showversion(); printf(“\nstart test_lcd test\n\n“); fd = open(DEVICE_NAME, O_RDWR); printf(“fd = %d\n“,fd); if (fd == -1) { printf(“open device %s error\n“,DEVICE_NAME); } else { for(i=0;i<640*480;i++) { buf[i]=0 x0001; } ret=write(fd,buf,sizeof(buf)); usleep(); close(fd); fd = open

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值