项目设计开发环境:

(1)VMware Workstation Pro软件

(2)ubuntu12 .04 (能交叉编译就行)

(3)SecureCRT

(4)代码编译器(notepad++/Visual Studio Code)

项目功能描述:

(1)幻灯片:开始进行图片幻灯片显示,结束后进入RFID刷卡开锁界面。

(2)RFID:刷卡成功和刷卡失败两种状态(刷卡成功后进入功能选择界面 )。

(3)功能选择界面:四个功能——电子相册、游戏、音乐播放、视频播放。

(4)电子相册:手动切换图片。

(5)游戏:后续待开发。

(6)音乐播放:手动切换歌曲,控制播放和暂停功能。

(7)视频播放:播放、退出。

设计步骤:

1、使用linux创建共享文件夹

2、程序编写

3、Linux的使用(交叉编译)

4、使用SecureCRT传输图片、视频(可U盘传输)

5、程序写入开发板

6、项目成果图:

1、创建共享文件夹

(1)打开虚拟机->菜单->管理->虚拟机设置->选项->共享文件夹->总是启用->添加。

(2)验证是否创建成功

快捷键:Ctrl+ALT+T 进入命令输入窗口,然后输入cd➕空格➕/mnt/hgfs➕回车,再输入ls➕回车。

2、程序编写

查看man手册:

 man 2 手册函数概述:

头文件:

#ifndef _MAIN_H_//头文件名字大写
#define _MAIN_H_
//看一下这个头文件有没有被重复包含//头文件
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <linux/input.h>
#include <sys/mman.h>
#include <strings.h>#include <stdlib.h>   //man 3 system ,man手册第三本书
#include "rfid.h"    ////全局变量
int x,y;//这是触摸屏的坐标变量
int fd;//触摸屏在文件描述符
int lcd_fd;//LCD的文件描述符
int * FB;//内存映射的起始指针
int num;
int ret;
int RD;
int yy;
int aa;
int dd;//函数声明
int project_init();//初始化函数
void touch_init();//触摸屏函数
void project_show();//主机界面
void project_delete();//释放销毁函数
int bmp_show(char *phtname);//显示图片函数
int system(const char *command);//
//结构体定义
//定义一个结构体存储读取触摸屏的信息
struct input_event touch;
int open_serial(void);
int PiccRequest(int fd);
int init_mplayer();
//宏定义
//联合体,枚举#endif//结束

部分程序:


//主要程序
void project_show()
{//幻灯片bmp_show("/cry/hzw1.bmp");//刷海贼王1图片sleep(2);bmp_show("/cry/hzw2.bmp");//刷海贼王2图片sleep(2);bmp_show("/cry/hzw3.bmp");//刷海贼王3图片sleep(2);bmp_show("/cry/hzw4.bmp");//刷海贼王4图片sleep(2);bmp_show("/cry/hzw5.bmp");//刷海贼王5图片sleep(2);bmp_show("/cry/hzw6.bmp");//刷海贼王6图片sleep(2);bmp_show("/cry/skks.bmp");//刷刷卡开锁图片sleep(2);while(1){ ret = PiccRequest(RD);if(ret == -1)  //若是请求超时退出,必须要关闭串口后,重新打开才能再次读取数据{usleep(500000);close(RD);//打开串口文件RD = open_serial();/*初始化串口*/init_tty(RD);timeout.tv_sec = 1;timeout.tv_usec = 0;continue;} else//(ret == 0){printf("ok!\n");}//发送B命令 和获取卡号ret = PiccAnticoll(RD);//若获取的cardid为0,或获取id超时,则需重新发送'A'命令if(cardid == 0 || ret == -1) continue; else if(ret == 0){printf("card ID = %x\n", cardid);  //打印cardid号usleep(500000);//break;}//close(RD);if (cardid==0x6333f3ad)  //选择固定卡号{printf("刷卡成功\n");bmp_show("/cry/skcg.bmp");//刷卡成功sleep(3);bmp_show("/cry/xuanzhe.bmp");//刷卡成功while (1){touch_init();//触摸屏在初始化if(touch.type == EV_KEY && touch.code == BTN_TOUCH && touch.value == 0){printf("(%d,%d)\n",x,y);//界面选择、界面跳转//图片切换if(x>25&&x<340&&y>70&&y<180){while(1){touch_init();//触摸屏在初始化if(touch.type == EV_KEY && touch.code == BTN_TOUCH && touch.value == 0){printf("(%d,%d)\n",x,y);if(x > 615 && x < 800 && y > 390 && y < 480){num++;printf("触碰左边屏幕");}if(x > 0 && x < 185 && y > 390 && y < 480){num--;printf("触碰右边屏幕");}if (num==0){bmp_show("/cry/hzw11.bmp");//显示陈日源图片 }if(num==1){printf("(%d,%d)\n",x,y);bmp_show("/cry/hzw22.bmp");//显示陈日源图片}if (num==2){printf("(%d,%d)\n",x,y);bmp_show("/cry/hzw33.bmp");//显示张少凯图片}if(num==3){printf("(%d,%d)\n",x,y);bmp_show("/cry/hzw44.bmp");//显示陈炯锋图片}if(num==4){printf("(%d,%d)\n",x,y);bmp_show("/cry/hzw55.bmp");//显示张仕盛图片}if(num==5){printf("(%d,%d)\n",x,y);bmp_show("/cry/hzw66.bmp");//显示方秭人图片}if (num<0){num=5;}if (num>5){num=0;}}if(x > 310 && x < 500 && y > 390 && y < 480)  {printf("退出头像显示界面");bmp_show("/cry/xuanzhe.bmp");//退出至选择界面图片break;}}  }//播放音乐if (x > 450 && x < 730 && y > 290 && y < 400){bmp_show("/cry/bofangyingyue.bmp");//显示播放界面while (1){touch_init();//触摸屏在初始化num=0;if(touch.type == EV_KEY && touch.code == BTN_TOUCH && touch.value == 0){printf("(%d,%d)\n",x,y);if(x > 620 && x < 800 && y > 390 && y <475){yy++;printf("触碰右上角屏幕");}if(x > 29 && x < 190 && y > 390 && y < 475){yy--;printf("触碰左上角屏幕");}if(yy==1){system("killall -9 madplay");system("madplay yanyuxingzhou.mp3 &");}if (yy==2){system("killall -9 madplay");system("madplay GuitarType.mp3 &");}if (yy==3){system("killall -9 madplay");system("madplay dongmian.mp3 &");}if (yy<0){yy=3;}if (yy>3){yy=0;}if(x > 230 && x < 380 && y >390&& y < 475)//暂停{system("killall -19 madplay");}if(x > 430 && x < 580 && y > 390 && y < 475)//继续{system("killall -18 madplay");}if(x > 630 && x < 780 && y > 15 && y < 80)//退出{system("killall -9 madplay");bmp_show("/cry/xuanzhe.bmp");//退出至选择界面图片break;} }}}//播放视频有bugif (x > 25 && x < 340 && y > 290 && y < 400){int dd =init_mplayer();bmp_show("/cry/chupeng.bmp");//退出至选择界面图片while (1){touch_init();//触摸屏在初始化if(touch.type == EV_KEY && touch.code == BTN_TOUCH && touch.value == 0){printf("(%d,%d)\n",x,y);if (x > 0 && x < 800 && y > 0 && y < 480){system("mplayer -slave -quiet -input file=/fifo -geometry 0:0 -zoom -x 800 -y 480 sp2.avi &");}if(x > 600 && x < 800 && y > 410 && y < 480)//左下角{//write(dd,"quit\n",5);system("killall -9 mplayer");bmp_show("/cry/xuanzhe.bmp");//退出至选择界面图片break;}}}} //游戏假的界面if (x > 450 && x < 730 && y > 70 && y < 180){//bmp_show("/cry/yxjm.bmp");//游戏开始界面//sleep(2);bmp_show("/cry/.bmp");//游戏界面while (1){touch_init();//触摸屏在初始化if(touch.type == EV_KEY && touch.code == BTN_TOUCH && touch.value == 0){printf("(%d,%d)\n",x,y);if(x > 600 && x < 800 && y > 410 && y < 480)//左下角{printf("退出头像显示界面");bmp_show("/cry/xuanzhe.bmp");//退出至选择界面图片break;}}}}if (x > 25 && x < 340 && y > 410 && y < 480){printf("退出头像显示界面");bmp_show("/cry/skks.bmp");//刷卡开锁照片break;  }}}}else{printf("刷卡失败\n");bmp_show("/cry/sksb.bmp");//刷卡失败while (1){touch_init();//触摸屏在初始化if(touch.type == EV_KEY && touch.code == BTN_TOUCH && touch.value == 0){printf("(%d,%d)\n",x,y);//界面选择、界面跳转if(x > 600 && x < 800 && y > 410 && y < 480)  {printf("退出头像显示界面");bmp_show("/cry/skks.bmp");//退出至刷卡开锁图片break;}}}}}
}

3、Linux的使用(交叉编译)

编译命令:

arm-linux-gcc *.c -std=c99   (默认生成a.out文件)

arm-linux-gcc *.c -o a.out -std=c99 (指定生成a.out文件)

arm-linux-gcc *.c -I../inc -o../bin/main -std=c99 (指定生成main文件并存在共享文件夹中的bin文件夹中)

项目框架:

 4、使用SecureCRT传输图片、视频(可U盘传输)

绿勾表示连接成功:

可以将图片或者文件拖到CRT里面选择Xmodem发送:

查看开发板有没有mplayer:

传输文件命令:

rx+空格+你想传输的图片(修改图片宽度像素800x480,后缀为.bmp格式)

rx+空格+你想传输的视频或者音乐(音频格式.mp3、视频格式.avi)

U盘传输:

默认路径为:cd + 空格+/mnt/udisk:

cp+U盘中想传输的文件+/想要存在的路径:

下图意思是拷贝hzw1.bmp文件到根目录文件中的cry文件夹中

查看当前路径或文件夹下有什么文件命令: ls

调成中文字符:

5、程序写入开发板

把交叉编译生成的a.out文件或main等文件拖到 SecureCRT中点击发送即可。

6、项目成果图:

粤嵌Gec6818---小项目功能实现(RFID+图片显示+音乐+视频)相关推荐

  1. 粤嵌GEC6818板子TCP网络编程发送命令控制音视频

    TCP网络编程 (1)gec6818网络编程前期准备工作 (1).开发板和Ubuntu系统都处于教室局域网内 1.开发板和电脑(Ubuntu)都需要连接上教室的网线 2.开发板设置ip地址 在开发板终 ...

  2. 模块化思想——粤嵌GEC6818读取图片宽度、高度、色深

    推荐阅读:C语言实现2048小游戏-粤嵌GEC6818嵌入式系统实训 C语言实现电子音乐相册-粤嵌GEC6818嵌入式系统实训 模块化思想 交叉编译两个c文件的方法: 模块化思想: ... 只有一个唯 ...

  3. C语言实现电子音乐相册---粤嵌GEC6818嵌入式系统实训

    C语言实现电子音乐相册---粤嵌GEC6818嵌入式系统实训 功能演示: 版本介绍 滑动式 点击放大式 完整版 至尊版 获取方式 功能演示: 演示视频: 滑动式 点击放大式 版本介绍 分为滑动式.点击 ...

  4. 粤嵌GEC6818开发板-入门感慨篇

    第一次接触嵌入式开发,小脑袋是一篇空白,度娘各种资料,零零碎碎,似懂非懂,确实有点懵逼. 1.前期准备 粤嵌GEC6818开发板一套,USB转串口线一根(简称A线),网线一根(简称N线)(可选).用A ...

  5. 基于粤嵌gec6818开发板嵌入式开发电子相册,音乐播放,视频播放,2048游戏

    一.功能与要求 实现功能:本系统需要使用粤嵌的GEC-6818开发板设计一款娱乐影音系统,其中包括图片显示(相册).音乐播放.视频播放,游戏四个部分,在每个部分内部,具有操控各个部分的功能触摸按键.本 ...

  6. 粤嵌gec6818开发板轮流显示颜色

    粤嵌gec6818开发板轮流显示颜色 #include <stdio.h> #include <sys/types.h> #include <sys/stat.h> ...

  7. 视频教程-从零开发一个iOS企业级项目实战之我的云音乐视频 教程-iOS

    从零开发一个iOS企业级项目实战之我的云音乐视频 教程 任苹蜻,爱学啊创始人 & CEO,曾就职于某二车手公司担任Android工程师后离职创办爱学啊,我们的宗旨是:人生苦短,我们只做好课!熟 ...

  8. MATLAB小技巧(9) 图片合成视频与视频分帧

    MATLAB小技巧(9)图片合成视频与视频分帧 前言 一. MATLAB仿真-序列合成 二. MATLAB仿真-视频分帧 三. 小结 前言 MATLAB进行图像处理相关的学习是非常友好的,可以从零开始 ...

  9. 粤嵌GEC6818实现图片显示

    推荐阅读:C语言实现2048小游戏-粤嵌GE6818嵌入式系统实训 C语言实现电子音乐相册-粤嵌GE6818嵌入式系统实训 要求 练习: 完成一张图片在板子上的显示 要求: 任意路径的图片 任意大小的 ...

最新文章

  1. 谈谈离职和跳槽(copy)
  2. ABP官方文档翻译 6.1.1 MVC控制器
  3. 解决HierarchyViewer不能连接真机的问题
  4. Flask的Debug功能非常酷
  5. 如何使antd中table表格不换行
  6. 第一百三十八期:37 个MySQL数据库小知识,为面试做准备
  7. Android开发中解决自定义弹窗获取不到控件对象的问题
  8. C#参考 : 枚举类型
  9. JavaScript学习(七十六)—this的指向问题
  10. sql server使用维护计划定时备份完整数据库、差异数据库
  11. 5.数据结构 --- 数组和广义表
  12. java读写excel,解决poi包中没有org.apache.poi.ss.usermodel.CellType的问题
  13. 参考文献格式(含文献标识码说明)
  14. 帝国cms后台界面修改方法 最新版教程
  15. 【运营】关于A/BTest的简单介绍
  16. 光伏抢装潮:630的得与失
  17. CF679A.Bear and Prime 100 (交互题)
  18. 制作路由器openwrt安装及配置
  19. 激活函数σ、tanh、relu、Leakyrelu、LR_BP反向传播推导
  20. 第一阶段团队冲刺值分析

热门文章

  1. 163邮箱注册,怎么注册申请 vip.tom.com邮箱?
  2. Ubuntu子系统下载源配置
  3. C盘满了,清理C盘常用步骤!
  4. 文字无限无缝滚动效果——和派孔明
  5. Linux在中国正在走向没落
  6. Element的左菜单Container容器不能布满全屏
  7. 电商宝分销小程序|三级分销佣金比例要如何去做设置呢?
  8. 人气爆棚 加速科技惊艳亮相ICCAD 2021
  9. 学猫叫计算机普我试试,原唱版的《学猫叫》吗,我们一起学猫叫
  10. ETF买卖基金网格生成器