当前位置: 首页 > news >正文

井冈山保育院网站建设网站设计的公司运营接单

井冈山保育院网站建设,网站设计的公司运营接单,宝安第一网站,徐州好点的做网站的公司1 LCD操作原理 linux中通过framebuffer驱动程序来控制LCD。framebuffer中包含LCD的参数#xff0c;大小为LCD分辨率xbpp。framebuffer 是一块内存 内存中保存了一帧图像。 关于图像的帧指的是在图像处理中#xff0c;一帧#xff08;Frame#xff09;是指图像序列中的单个…1 LCD操作原理 linux中通过framebuffer驱动程序来控制LCD。framebuffer中包含LCD的参数大小为LCD分辨率xbpp。framebuffer 是一块内存 内存中保存了一帧图像。 关于图像的帧指的是在图像处理中一帧Frame是指图像序列中的单个静止图像。当连续的图像以每秒多帧的速度播放时就可以产生动画、视频或电影。每一帧都是由像素组成的二维网格每个像素都包含颜色和亮度信息。通过在连续的帧之间进行快速切换人眼会感知到连续的动态效果。因此一帧是构成动画和视频的基本单元。 LCD的操作过程 1、驱动程序设置好LCD控制器 根据 LCD 的参数设置 LCD 控制器的时序、信号极性 根据 LCD 分辨率、BPP 分配 Framebuffer。 2、APP 使用 ioctl 获得 LCD 分辨率、BPP 3、APP 通过 mmap 映射 Framebuffer在 Framebuffer 中写入数据 假设需要设置 LCD 中坐标(x,y)处像素的颜色首要要找到这个像素对应的内存然后根据它的 BPP 值设置颜色。也就是找到内存所对应的地址然后给他赋值。假设 fb_base 是 APP 执行 mmap 后得到的 Framebuffer 地址首地址 计算公式 (xy)像素起始地址fb_base(xres*bpp/8)y xbpp/8 xresx方向分辨率bpp每个像素的位数 /8:将位数换算成字节 y y坐标这里从第0行开始所以不用减1 x x坐标 bpp 每个像素的位数bits per pixel 有RGB888 565 555格式 对于 32BPP一般只设置其中的低 24 位高 8 位表示透明度一般的 LCD都不支持。 对于 24BPP硬件上为了方便处理在 Framebuffer 中也是用 32 位来表示效果跟 32BPP 是一样的。 对于 16BPP常用的是 RGB565很少的场合会用到 RGB555这可以通过ioctl 读取驱动程序中的 RGB 位偏移来确定使用哪一种格式 这里补充一下寻址方式一般为字节寻址也就是说一个地址对应的一个储存单元能储存8位数据。 实验一 并画一条直线 #include fcntl.h #include stdint.h #include stdio.h #include sys/ioctl.h #include linux/fb.h #include sys/mman.h #include sys/types.h #include string.h #include unistd.h static struct fb_var_screeninfo var; static int fd_fb; static unsigned int screen_size; static unsigned int line_width; static unsigned int pixel_width; static unsigned char *fb_base; static void lcd_put_pixel(int x, int y,int color) {unsigned char *pen_8 fb_basey*line_widthx*pixel_width;unsigned short * pen_16;unsigned int *pen_32;unsigned int red, green, blue;pen_16 (unsigned short *)pen_8;pen_32 (unsigned int *)pen_8;switch (var.bits_per_pixel){case 8:{*pen_8color;//printf(*pen_8 %d\n,*pen_8);break;}case 16:{/* 565 */red (color 16) 0xff;green (color 8) 0xff;blue (color 0) 0xff;color ((red 3) 11) | ((green 2) 5) | (blue 3);*pen_16 color;// printf(*pen_16 %d\n,*pen_16);break;}case 32:{*pen_32 color;// printf(*pen_32 %d\n,*pen_32);break;}default:{printf(cant surport %dbpp\n, var.bits_per_pixel);break;}} } int main(char argc, char **argv) {int i;//这里我先提个问题如何确定设备驱动文件的/* 以只读方式打开驱动设备文件 */fd_fb open(/dev/fb0, O_RDWR);if(fd_fb0){printf(cannot open /dev/fb0 \n);return -1;}/* fd_fb是一个打开的 Framebuffer 设备文件的文件描述符。 FBIOGET_VSCREENINFO是一个常量宏表示获取可见屏幕信息的操作。 var是一个指向 vscreeninfo 结构体的指针用于接收获取到的可见屏幕信息。 */// ioctl成功返回 失败-1if (ioctl(fd_fb, FBIOGET_VSCREENINFO,var)){printf(can not get var \n);return -1;}/* 一行的字节数 */line_width var.xres *var.bits_per_pixel/8;/* bpp转换成字节 */pixel_width var.bits_per_pixel/8;screen_size var.xres*var.yres*var.bits_per_pixel/8;printf(var.bits_per_pixel %d\n,var.bits_per_pixel);/* MAP_SHARED 表示映射区域与其他进程共享。0表示映射区域在文件中的偏移量此处为从文件开头开始映射。*/fb_base(unsigned char *)mmap(NULL ,screen_size, PROT_READ | PROT_WRITE, MAP_SHARED, fd_fb, 0);/* mmap 调用失败它会返回 MAP_FAILED通常定义为 (void *)-1 */if(fb_base (unsigned char *) -1){printf(can not mmap \n);return -1;}memset(fb_base, 0xff, screen_size);for ( i 0; i 100; i){lcd_put_pixel(var.xres/2i,var.yres/2,0xFF0000);}munmap(fb_base, screen_size);close(fd_fb);return 0; }实验效果 在屏幕中间从左至右画了一条横线 终端打印出var.bits_per_pixel 32 这里我有几个问题 1、mmap返回值转换成uchar*类型 这时注意地址并没有变地址这个指针操作系统是多少位他就永远是多少位他指向的内容也不会变只是寻址方式发生变化 就比如我们看datasheet stm32 的一个寄存器偏移地址为0x00而下一个为0x04 他就是以四个字节递增的。 再比如我们从flash中读取一段数据 要区分半字读还是字读。 2、这引入了第二个问题 x后地址偏移的字节数是根据pixel_width决定的 pixel_width var.bits_per_pixel/8; var.bits_per_pixel 为32位那么一次偏移4个字节刚好32位存储32位数据 也就是说2进制编码中一个地址存放1位数据0/1 0x1000 到0x1004 则跨了四个字节32位能存储32位数据。
http://www.hkea.cn/news/14474137/

相关文章:

  • 网站建设douyanet个人做网站要注意什么条件
  • 网站建设的基本要求织梦网站文章内容模板
  • 网站建设网站推广优化二手网站怎么做
  • 南山网站建设公司乐云seo免费word模板
  • 河南省濮阳市建设局网站广告投放平台系统
  • 360路由器做网站网站建设项目策划书
  • 微信官网站国外短视频软件
  • 耒阳网站建设黄页网如何注册
  • 遵义网站建设网站公司注册流程图及时间
  • 气血不足做网站接外包活去什么平台
  • 太原论坛网站开发公司网站建设ps模板下载
  • 佛山专业建设网站平台网页制作图片模板
  • 公司让做网站违法招投标建设网站的网站
  • 没事网站建设项目规划书京津冀协同发展交通一体化规划
  • 做金融的喜欢逛哪些网站宁波公司建网站哪家好
  • iis打开网站变成下载啥前端框架可以做网站首页
  • 找个人给我做电影网站广州住房和城乡建设局官网
  • 2014山东春季高考网站建设建立企业网站的步骤
  • 公司怎么制作网站江门网站制作设计
  • 公司网站制作专业公司vps 建网站 代理
  • 企业网站推广计划专业网站建设品牌策
  • 懂福溶州做戒网站湖北省黄冈建设信息网站
  • 电商网站规划市场营销推广活动方案
  • 快速建站介绍灰色行业做网站推广
  • 网站建设中 模板下载天津建设网证件查询
  • 网站如何从后台进入企业电话查询黄页
  • 响应式网站做mip潍坊娜娜网站制作
  • 广州私人做网站综合购物网站建站
  • 商业网站的建设流程建设网站对服务器有什么要求
  • 做网站代理工作安全吗网站全局搜索如何做