问题:移植后摄像头显示异常:颜色不对,显示两个相同的区域,且只显示半个屏幕
解决方法:以我的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数据线先极性 */
};
};
};
};