摄像头OV7670 无fifo,无晶振 采用8MHz CLK输入 用IO口直接读取模式,直接传递给TFT显示

2019-07-21 03:38发布

TFT上显示出来的图像为好久个,而且 {MOD}彩以及图像大小不对,只能看出一个大概的轮廓(我的手。。。),不知道是为什么。。。?T,T求帮助
程序根据例程36摄像头改编




[mw_shl_code=c,true]//更新LCD显示 void camera_refresh(void) { u32 i,j; u16 color; LCD_Scan_Dir(U2D_L2R); //从上到下,从左到右 LCD_SetCursor(0x00,0x0000); //设置光标位置 LCD_WriteRAM_Prepare(); //开始写入GRAM while(OV7670_VSYNC==0);//0-1     while(OV7670_VSYNC==1);//1-0 只有在VSYNC为低时,才写入数据 //240*320=76800 每个像素用RGB565表示,即每个像素占两个字节,一个像素需传递两次 for(i=0;i<240;i++) { while(OV7670_HREF==0);//0-1 只有在HERE为高时,才传递数据 for(j=0;j<320;j++) { //读取高8位 while(OV7670_PCLK==0); //0-1 数据在PCLK上升沿保持稳定,在此时读取数据 color=GPIOC->IDR&0XFF; //读数据 while(OV7670_PCLK==1); //1-0 //左移高八位 color<<=8; //读取低8位 while(OV7670_PCLK==0); //0-1 color|=GPIOC->IDR&0XFF; //读数据 while(OV7670_PCLK==1); //1-0 //显示LCD LCD->LCD_RAM=color; } while(OV7670_HREF==1); //1-0 } //ov_frame++; LCD_Scan_Dir(DFT_SCAN_DIR); //恢复默认扫描方向 } [/mw_shl_code] 附上两张时序图


另外求DMA解决方式,以及将OV7670数据直接传给TFT显存解决方式




友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
14条回答
q1092840790
1楼-- · 2019-07-21 21:17
没人知道怎么通过DMA方式么?。。。T.T
935011539
2楼-- · 2019-07-21 23:40
楼主,我的是不带FIFO不带晶振的摄像头,研究了很久,没什么进展,求发源代码orz,935011539@qq.com
piaoran111999
3楼-- · 2019-07-22 04:22
 精彩回答 2  元偷偷看……
piaoran111999
4楼-- · 2019-07-22 05:45
回复【8楼】q1092840790:
---------------------------------
不可能有DMA 因为DMA不支持引脚触发
q1092840790
5楼-- · 2019-07-22 06:22
回复【11楼】piaoran111999:
---------------------------------
STM32的所有IO口都是可以作为外部输入触发的,但是分为外部中断和外部事件,外部事件是可以用来配置ADC、DMA等的。。。。。有兴趣你可以百度下,然后再调试下。。。。。我没有去弄,只是大概了解了下
Sakerjin
6楼-- · 2019-07-22 07:12
piaoran111999 发表于 2015-8-11 20:11
回复【8楼】q1092840790:
---------------------------------
不可能有DMA&nbsp;因为DMA不支持引脚触发

请问您有那个骑远飞家族的Ov7670摄像头程序了吗,有的话发一份,多谢了,2289120954@qq.com

一周热门 更多>