阿尔法开发板移植ov5640时候一个小的注意事项

问题:移植后摄像头显示异常:颜色不对,显示两个相同的区域,且只显示半个屏幕

解决方法:以我的4.3寸屏幕为例

一定要把bits-per-pixel改成16,因为ov5640不支持24等其他格式,所以导致字节写入和读取错误,最终导致显示错误,并不是摄像头驱动问题,而是显示驱动问题。

/* 4.3寸800*480 */
&lcdif {
    pinctrl-names = "default";
    pinctrl-0 = <&pinctrl_lcdif_dat                 /* 使用到的IO */
            &pinctrl_lcdif_ctrl>;
    display = <&display0>;
    status = "okay";

    display0: display {                             /* LCD属性信息 */
        bits-per-pixel = <16>;                      /* 一个像素占用24bit */
        bus-width = <24>;                           /* 总线宽度 */

        display-timings {
            native-mode = <&timing0>;               /* 时序信息 */
            timing0: timing0 {
                clock-frequency = <31000000>;       /* LCD像素时钟,单位Hz,实际应该会被分成33000000,31M是理论的,而能实际分频的是33M*/
                hactive = <800>;                    /* LCD X轴像素个数 */
                vactive = <480>;                    /* LCD Y轴像素个数 */
                hfront-porch = <40>;                /* LCD hfp参数 */
                hback-porch = <88>;                 /* LCD hbp参数 */
                hsync-len = <48>;                   /* LCD hspw参数 */
                vback-porch = <32>;                 /* LCD vbp参数 */
                vfront-porch = <13>;                /* LCD vfp参数 */
                vsync-len = <3>;                    /* LCD vspw参数 */

                hsync-active = <0>;                 /* hsync数据线极性 */
                vsync-active = <0>;                 /* vsync数据线极性 */
                de-active = <1>;                    /* de数据线极性 */
                pixelclk-active = <0>;              /* clk数据线先极性 */
            };
        };
    };
};
posted @ 2025-10-02 18:23  绿树荫下跑猫猫  阅读(11)  评论(0)    收藏  举报