OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 7005|回复: 7

大神帮帮忙,ov7670+fifo读图像出来不对,多谢了!

[复制链接]

2

主题

5

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2013-1-8
在线时间
0 小时
发表于 2013-1-8 21:23:42 | 显示全部楼层 |阅读模式
我用的是STM32,图片读出来以后,通过串口发送到电脑上显示成这样


贴上代码,弄了一个月了也没搞定,对于高手来说应该很简单

void EXTI0_IRQHandler(void){
        EXTI->R=1<<0;
        LED_Out(3);
          
        Vsync_Flag++;
        if(Vsync_Flag==1)    //FIFO写指针复位
        {
                FIFO_WRST=0;
                delay_us(100);
                FIFO_WRST=1;                                                                                
                FIFO_WR=1; 
                
        }
        if(Vsync_Flag==2){
                 FIFO_WR=0;     //禁止CMOS数据写入FIFO
                EXTI->IMR&=~(1<<0);         //禁止外部中断,准备从FIFO中取数据
                EXTI->EMR&=~(1<<0);
                
                LED_Out(1);
                FIFO_RRST =0;                                //读指针复位                                                                                
                FIFO_RCK =0;                                //至少需要一个时钟周期的跳变才能复位
                FIFO_RCK =1;
                FIFO_RCK =0;
                FIFO_RCK =1;
                FIFO_RRST =1;
                FIFO_OE = 0;

                for(i = 0; i < 240; i ++)                 
                   {
                        for(j = 0; j < 320; j ++)
                          {
                                FIFO_RCK =0;
                                __nop();
                                __nop();
                                t1=(0x00ff&GPIOD->IDR);        //高8位
                                FIFO_RCK =1;
                                __nop();
                                __nop();
                                FIFO_RCK =0;
                                __nop();
                                __nop();
                                t2=(0x00ff&GPIOD->IDR); 
                                FIFO_RCK =1;
                                __nop();
                                __nop();
                      //串口发送
                                USART1->DR=t1; 
                        while((USART1->SR&0X40)==0);
                                USART1->DR=t2; 
                        while((USART1->SR&0X40)==0);                 
                        }
                }
                LED_Out(2);
                FIFO_OE=1;        
                FIFO_WR=0;
                Vsync_Flag = 0;                                //开始下一帧数据采集   
                EXTI->IMR|=1<<0;          //允许外部中断,以便接收下帧图像数据
                EXTI->EMR|=1<<0;
        }        
}

上位机是320×240,stm32读出来数据,字节逐个发送到了串口,就是不知道按照什么次序读,刚开始按照 左-右-上-下 的顺序读取像素点的,发现图像全是条纹,后来改成 上-下-左-右的顺序,就变成现在的色块了。应该用什么顺序读取呢?


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

24

主题

106

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
280
金钱
280
注册时间
2012-3-21
在线时间
17 小时
发表于 2013-1-8 22:28:30 | 显示全部楼层
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-1-9 01:28:50 | 显示全部楼层
能用LCD先显示出来,是最好的了.
你这种情况,先检查读取数据是否正常,你的ov7670怎么连接的?有没有数据线很长?如果数据线很长,干扰就大了,原始数据就不对,显示出来,能正常才怪.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

2

主题

5

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2013-1-8
在线时间
0 小时
 楼主| 发表于 2013-1-9 20:17:52 | 显示全部楼层
回复【2楼】daiqh:
---------------------------------
请问我贴的这段代码时序有什么问题吗?
回复 支持 反对

使用道具 举报

2

主题

5

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2013-1-8
在线时间
0 小时
 楼主| 发表于 2013-1-9 20:19:35 | 显示全部楼层
回复【3楼】正点原子:
---------------------------------
我没有lcd,数据线用的十几厘米杜邦线,这个也有干扰吗?那我改短点试试。
不知道我的上位机代码有没有问题,也找不到串口接收图片的例子。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-1-9 21:14:06 | 显示全部楼层
回复【5楼】planet:
---------------------------------
杜邦线连接干扰很大的,快速读取数据的时候。分类捆绑,会好点。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

356

主题

1477

帖子

12

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
8114
金钱
8114
注册时间
2015-10-15
在线时间
2926 小时
发表于 2014-4-23 08:30:23 | 显示全部楼层
回复【楼主位】planet:
---------------------------------
请问楼主现在解决了吗?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

29

主题

340

帖子

0

精华

高级会员

Rank: 4

积分
799
金钱
799
注册时间
2013-12-17
在线时间
100 小时
发表于 2014-4-23 09:49:54 | 显示全部楼层
回复【7楼】Anonymous:
---------------------------------
我现在也是干扰很大啊,绑了线干扰也挺大的
就算有一天梦想成真,而你做好准备了吗?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-7 07:06

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表