|
板子:自己画的H750VBT6外设:
LCD:st7789(320*240)(FMC模拟8080时序)
摄像头:ov7670(外部12M晶振,已配置寄存器到了48Mhz({0x11, 0x01}))
驱动思路:
程序参考V7的摄像头,使用了DMA1。
定义了一个联合体来存放摄像头数据
typedef union{
struct {
vu16 buffer_16[320*240];
};
vu32 buffer_32[320*120];
} CAMERA_BUF_t;
CAMERA_BUF_t g_camera_data;
使用这个结构体是考虑LCD画点的颜色是u16格式
//画点代码
void LCD_Fast_DrawPoint(u16 x,u16 y,u16 color)
{
LCD_SetCursor(x,y); //设置光标位置
LCD->LCD_REG=lcddev.wramcmd;
LCD->LCD_RAM=color;
}
//自定义的摄像头刷屏
void LCD_SP(void)
{
int x =0;
int y = 0;
int i = 0;
for(x=0;x<320;x++)
{
for(y = 0;y<240;y++)
{
LCD_Fast_DrawPoint(x,y,g_camera_data.buffer_16);
i++;
}
}
}
但是移植好后测试发现显示不正确,在开启彩条模式显示如下图。
在论坛里面找,发现有个很类似的问题,看帖子说是LCD的问题
x3 + OV7670+WQVGA 输出彩条有问题
http://www.armbbs.cn/forum.php?m ... 9&fromuid=23224
我就检查了一些我的LCD的方向,调用LCD_FILL填充了一个矩形(LCD_Fill(100,100,130,130,RED);)
左上角为(0,0)从左到右,从上到下。
不开启彩条,实时显示效果如图
图像诡异,个人观察,屏幕中图像被上中下三个段,每个段都相同。
如何解决?
|
|