单片机教程网

电脑版
提示:原网页已由神马搜索转码, 内容由www.51hei.com提供.
查看:5284|回复:0
打印上一主题下一主题

linux+ARM6818开发板电子相册源程序

[复制链接]
跳转到指定楼层
楼主
ID:668660发表于 2019-12-19 20:21|只看该作者回帖奖励
可以简单的实现电子相册的浏览图片的功能,同时也可以通过往目标文件夹中添加图片文件来浏览

1、linux下 一切皆是文件
   那么对于屏幕的操作也是文件操作 只不过这个文件是一个设备
  
   所以屏幕操作分为以下几步:
   //第一步:打开
   //第二步:写数据
   //第三步:关闭文件
2、屏幕介绍:
   800*480 32位真彩色
   800*480 表示片屏幕大小 单位是像素 480行 每一行 800个像素点
   32位真彩色 每一个像素点是由32位数据表示的
       对应4字节 分别为 a透明度 r red g green b blue
3、屏幕文件所在路径
   /dev/fb0  
4、颜色对照表 是24位的没有透明度
   显示时将透明度补充为00 即可
  
5、bmp图片简介
   bmp图片是windows下标准的位图格式
   位图就是显示在屏幕像素上的点一位位数据表示出来 不经过任何压缩算法 所以
   bmp图片一般比较大
   800*480 32位图 的大小为 800*480*4+54 个字节
  
   每一张bmp图片都有54字节的文件头 其决定文件的类型 大小 色深等信息  
   接下来我们看以下具体的内容:
       见图片
  
      
作业:将项目中读取文件列表 与今日内容整合  实现 自动循环播放 24位bmp图
   请实现32位的bmp图
6、通过触摸屏切换显示
   linux输入子系统:
       linux下的输入设备主要有: 键盘 鼠标 麦、写字板、触摸屏等等
      
       linux将所有的输入设备归于一个驱动设备文件管理 该设备被称之为 事件文件  位于
         GEC210 位于 /dev/event0
         GEC6818 位于 /dev/input/event0
        
       在linux下获取输入事件其本质就是在输入设备文件中读取数据 而这个数据的格式由输入子系统决定 本质就是一个结构体
         即struct input_event
         该结构体位于 linux/input.h头文件下!
       结构体解析:
         struct input_event{
           struct timeval time; //事件触发的时间
           _u16 type;
               表示输入事件的类型
           _u16 code;
               表示输入事件的数据即输入事件类型的子集
           _s32 value; //值 子集对应的键值
         }
        
         type: 取值有以下几个:
           #define EV_SYN  0x00 表示同步事件
           #define EV_KEY   0x01 表示按键事件  //键盘
           #define EV_REL   0x02 表示相对事件  //鼠标
           #define EV_ABS   0x03 表示绝对事件  //触摸屏
          
         根据type的取值不同 code取值也不同
           如果type == EV_KEY
               code 取值如下
                 KEY_A       按键A
                 KEY_B       按键B
                 ......
           如果type == EV_ABS
               code取值如下:
                 #define ABS_X   0x00 表示触摸屏x轴坐标
                 #define ABS_Y     0x01 表示触摸屏y轴坐标
                 #define ABS_PRESSURE 0x18 表示触摸点的压力 用来判断是按下还是离开
                       压力值是一个量化值:
         对于value而言 type和code的值共同决定其值的含义:
           如果type == EV_ABS&& code == ABS_x 则 value就是x轴的坐标
           如果type == EV_ABS&& code == ABS_Y 则 value就是Y轴的坐标
           如果type == EV_ABS&& code == ABS_PRESSURE 则 value就是压力值的大小 value == 0 表示离开 value > 0表示按下
           如果type == EV_KEY&& code == KEY_A 则value对应 按键键值 1 表示按下 0表示松开
        
         注意: 6818开发板将 压力值归为EV_KEY中   即0x01 中 压力值的宏为 0x14a
          
       //第一步:打开触摸屏
       //第二步:读取数据
       //第三步:解析
       //第四步从第二步开始循环
           直到一次操作完位置
          
       思考: 怎么判断一次操作的开始 当第一次value>0 就按下
                       结束 当第一次value == 0就是离开
                      
全部资料51hei下载地址:
项目电子相册.zip(1.13 MB, 下载次数: 119)

评分

黑币 +50
收起理由
+ 50
共享资料的黑币奖励!

查看全部评分

手机版|小黑屋|51黑电子论坛|51黑电子论坛6群QQ管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网