嵌入式爱好者

查看: 1930|回复: 1

[Linux] IMX8 LCD显示

[复制链接]

1

主题

5

帖子

9

积分

扫一扫,手机访问本帖
发表于 2023-6-15 15:48:22 | 显示全部楼层 |阅读模式
我写了一个FB(LCD)的应用,但是屏幕没有反应,请问是哪里写错了清屏和点操作都不行

int main(int argc,char **argv)

{

        int fd;

        /* 1、打开/dev/fb0 */

        fd = open("/dev/fb0",O_RDWR,0);

        if(fd <= 0)

        {

                 printf("open is error!!\n");

                 return -1;

        }



        /* 2、获取可变参数,固定参数 */

        /* 2.2、FBIOGET_VSCREENINFO获取可变参数:x,y,bpp */

        int res = ioctl(fd,FBIOGET_VSCREENINFO,&var);
                if(res==-1){
                        perror("ioctl FBIOGET_VSCREENINFO error\n");
                        return -1;
                }

        printf("横坐标=%d\n",var.xres);

        printf("纵坐标=%d\n",var.yres);

        printf("一个像素点的位数=%dbit\n",var.bits_per_pixel);

        printf("横坐标*纵坐标*一个像素点的位数/8=Framebuffer的大小=%d字节\n",var.xres*var.yres*var.bits_per_pixel/8);

        /* 2.2、FBIOGET_FSCREENINFO获取固定参数:显存大小 */

        ioctl(fd,FBIOGET_FSCREENINFO,&fix);

        printf("屏幕显示缓冲区大小=%d字节\n",fix.smem_len); //FD缓冲区长度

        printf("虚拟横坐标=%d字节\n",var.xres_virtual);

        printf("虚拟纵坐标=%d字节\n",var.yres_virtual);

        /* 3、获取显存虚拟起始地址 */

        /*

         * start:虚拟起始地址 null 自动分配

         * length: 映射的大小

         * prot :权限 PROT_READ | PROT_WRITE

         * flags : MAP_SHARED

         * fd:文件描述符

         */

        fbmem =(unsigned char *)mmap(NULL,fix.smem_len,PROT_READ|PROT_WRITE,MAP_SHARED,fd, 0);

        printf("LCD 映射地址:%p\n",fbmem);


        /* 4、清屏函数----把fbmem空间覆盖成0x0    ,清屏成黑色*/

        memset(fbmem,0xff,fix.smem_len);
        printf("清屏\n");
                /* 随便设置出100*100个为红色 */
        for (int j = 0; j < 100; j++)
        {
                for (int i = 0; i < 100; i++)
                        show_pixel(var.xres/2+i, var.yres/2+j, 0xFF0000);//传入颜色格式为RGB888
        }
       
        munmap(fbmem , fix.smem_len);//取消对fb_base的内存地址映射
        close(fd);
       

      return 0;


}


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋| 飞凌嵌入式 ( 冀ICP备12004394号-1 )

GMT+8, 2024-12-20 19:39

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表