Linux:vc_dispmanx_display_open返回无效句柄

时间:2014-06-30 16:17:29

标签: c++ linux raspberry-pi framebuffer raspbian

我想将framebuffer复制到运行raspbian的覆盆子pi上的LCD显示器上。为此,我使用以下代码:

#include <stdio.h>
#include <stdlib.h>
#include "RAIO8870.h"
#include <bcm_host.h>


int main(int argc, char **argv)
{
    DISPMANX_DISPLAY_HANDLE_T main_display_handle;
    DISPMANX_RESOURCE_HANDLE_T screen_resource_handle;

    VC_RECT_T rectangle;

    int ret;
    uint32_t image_prt;
    uint16_t image[ PICTURE_PIXELS ];


    bcm_host_init();

    if ( !bcm2835_init() )
    return ( -1 );

    TFT_init_board();       
    TFT_hard_reset();
    RAIO_init();

    RAIO_SetBacklightPWMValue( 255 );

    uint32_t screen=0;


    printf("Open display[%i]...\n", screen );
    // open main framebuffer device
    main_display_handle = vc_dispmanx_display_open( screen );
    if ( !main_display_handle )
    {
        printf("\n Unable to open  display %i Handle: %i",screen,main_display_handle);
        return( -1 );
    }

程序总是在if条件下退出,因为vc_dispmanx_display_open确实返回0.我无法找到有关此函数的任何文档。 那么为什么它会返回一个无效的句柄以及如何避免这种情况呢?

0 个答案:

没有答案