linux中如何在fb上显示

转载 注明 ;http://blog.csdn.net/u011046042/article/details/68066091
最简单的代码如下:

#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <string.h>
#include <linux/fb.h>
#include <sys/mman.h>
#include <sys/ioctl.h>
#include <arpa/inet.h>
#include <errno.h>

static char *fbp = 0;
int fbfd = 0;


int main()
{
    int i;
    fbfd = open("/dev/fb0", O_RDWR);
    fbp = (char *)mmap(0, 1920*1080*4, PROT_READ|PROT_WRITE, MAP_SHARED, fbfd, 0);
    if (fbp == NULL)
    {
        printf("Error: failed to map framebuffer device to memory.\n");
        return -1;
    }
    int *add;
    add = (int *)fbp;
    for(i=0; i< 1080*1920; i++)
    {
        *add = 0x000000ff;
        add++;
    }
    munmap((void *)fbp,1920*1080*4);
    return 0;
}


gcc fb.c -o fb 就好了。

直接执行就可以看到对应的颜色了 。
这个demo后面可以做一些驱动的验证。
转载 注明 ;http://blog.csdn.net/u011046042/article/details/68066091
---------------------
作者:道亦无名
来源:CSDN
原文:https://blog.csdn.net/u011046042/article/details/68066091
版权声明:本文为博主原创文章,转载请附上博文链接!

嵌入式Qt在Linux环境下要在Framebuffer(fb1)上显示,通常是指在无图形界面的纯文本模式下显示,这通常是通过控制台窗口或者字符界面实现的。以下是一个简单的步骤概述: 1. 确定目标环境:首先,你需要确认你的嵌入式设备是否支持Framebuffer以及其对应的分辨率和颜色深度。 2. 配置Qt环境:确保你在构建Qt应用程序时选择了适合嵌入式环境的配置选项,如小屏幕优化(Embedded Profile)。 3. 使用QApplication和QGraphicsScene:在main()函数创建QApplication实例,并设置事件过滤器以便接收Framebuffer的消息。 ```cpp #include <QApplication> #include <QGraphicsScene> #include <QPainter> QApplication app(argc, argv); // 创建一个空的图形场景 QGraphicsScene graphicsScene; // 创建一个QPainter对象 QPainter painter(&graphicsScene); // 设置前景色为白色,背景色为黑色 painter.setPen(Qt::black); painter.setBackground(QBrush(Qt::white)); // 开始绘制 painter.drawRect(0, 0, QApplication::desktop()->width(), QApplication::desktop()->height()); // 显示图形到Framebuffer app.exec(); ``` 4. 与Framebuffer交互:通常,你需要直接操作Framebuffer来显示内容,这可能涉及到底层的像素操作,这在Qt并不常见。你可以使用fbset、ioctl或者其他Linux系统调用来修改Framebuffer的内容。 注意,这可能会非常复杂,因为Qt本身并不是为这种低级别的硬件访问而设计的。此外,很多现代嵌入式系统会提供专门的UI框架,比如OpenEmbedded/Yocto或Android.mk,它们可能提供更合适的方式来在Framebuffer上显示内容。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值