OpenEdv-开源电子网

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

用F767驱动带FIFO的OV7670(没用DCMI接口),MCU屏变花,不知道错在哪里

[复制链接]

21

主题

108

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
355
金钱
355
注册时间
2017-11-25
在线时间
80 小时
发表于 2018-6-5 20:03:17 | 显示全部楼层 |阅读模式
5金钱
本帖最后由 往事啊 于 2018-6-5 20:09 编辑

OV7670头文件参数定义,7670初始化没问题,场中断和定时函数也没啥问题
#define OV7670_VSYNC          HAL_GPIO_ReadPin(GPIOF,GPIO_PIN_8) //同步信号检测IO
#define OV7670_WRST(n)                (n?HAL_GPIO_WritePin(GPIOF,GPIO_PIN_7,GPIO_PIN_SET):HAL_GPIO_WritePin(GPIOF,GPIO_PIN_7,GPIO_PIN_RESET))                //写指针复位
#define OV7670_WREN(n)                (n?HAL_GPIO_WritePin(GPIOF,GPIO_PIN_6,GPIO_PIN_SET):HAL_GPIO_WritePin(GPIOF,GPIO_PIN_6,GPIO_PIN_RESET))                //写入FIFO使能
#define OV7670_RCK_H        GPIOE->BSRR=1<<3    //设置读数据时钟高电平
#define OV7670_RCK_L        GPIOE->BSRR=1<<19         //设置读数据时钟低电平
#define OV7670_RRST(n)                (n?HAL_GPIO_WritePin(GPIOF,GPIO_PIN_9,GPIO_PIN_SET):HAL_GPIO_WritePin(GPIOF,GPIO_PIN_9,GPIO_PIN_RESET))                 //读指针复位
#define OV7670_CS(n)                (n?HAL_GPIO_WritePin(GPIOE,GPIO_PIN_4,GPIO_PIN_SET):HAL_GPIO_WritePin(GPIOE,GPIO_PIN_4,GPIO_PIN_RESET))                //片选信号(OE)

#define OV7670_DATA       (u8)(GPIOC->IDR>>4&0x00ff);

都放在一起太长,2、3楼分别放上更新函数与主函数

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

使用道具 举报

21

主题

108

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
355
金钱
355
注册时间
2017-11-25
在线时间
80 小时
 楼主| 发表于 2018-6-5 20:03:53 | 显示全部楼层
本帖最后由 往事啊 于 2018-6-5 20:06 编辑

更新函数,感觉是数据传输问题或是杜邦线间干扰,目前不知该如何解决
void camera_refresh(void) {         
u32 j;         
u16 color;         
if(ov_sta)         
{                 
LCD_Scan_Dir(U2D_L2R);               
if(lcddev.id==0X1963)LCD_Set_Window((lcddev.width-240)/2,(lcddev.height-320)/2,240,320);//将显示区域设置到屏幕中央               
  else if(lcddev.id==0X5510||lcddev.id==0X5310)LCD_Set_Window((lcddev.width-320)/2,(lcddev.height-240)/2,320,240);//将显示区域设置到屏幕中央                 
LCD_WriteRAM_Prepare();     //开始写入GRAM                        
OV7670_RRST(0);                                //开始复位读指针                  
OV7670_RCK_L;                 
OV7670_RCK_H;                 
OV7670_RCK_L;                 
OV7670_RRST(1);                                //复位读指针结束                 
OV7670_RCK_H;                 
for(j=0;j<76800;j++)         
{                                                
OV7670_RCK_L;                        
color=OV7670_DATA;        //读数据                        
OV7670_RCK_H;                          
color<<=8;                                                
OV7670_RCK_L;                        
color|=OV7670_DATA;        //读数据                          
OV7670_RCK_H;                                                                     
LCD->LCD_RAM=color;                                                      
}                                            
ov_sta=0;                                        //清零帧中断标记               
ov_frame++;                  
LCD_Scan_Dir(DFT_SCAN_DIR);        //恢复默认扫描方向                                 
  }         
}
回复

使用道具 举报

21

主题

108

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
355
金钱
355
注册时间
2017-11-25
在线时间
80 小时
 楼主| 发表于 2018-6-5 20:07:08 | 显示全部楼层
主函数,应该没啥问题
int main(void)
{
        u8 tm;
        Cache_Enable();
        Stm32_Clock_Init(432,25,2,9);
        HAL_Init();
        delay_init(216);
        uart_init(115200);
        LED_Init();
        LCD_Init();
        LCD_ShowString(30,30,200,16,16,"LCD Init OK!");
        while(OV7670_Init())
        {
                LCD_ShowString(30,50,200,16,16,"OV7670 Error!");
                delay_ms(200);
                LCD_Fill(30,50,239,246,WHITE);
                delay_ms(200);
        }
        LCD_ShowString(30,50,200,16,16,"OV7670 Init OK!");
        delay_ms(1500);
        TIM3_Init(9999,10800-1);
        EXTI8_Init();
        OV7670_Window_Set(12,176,240,320);
        OV7670_CS(0);
        LCD_Clear(BLACK);
        
        while(1)
        {
                camera_refresh();
                tm++;
                if(tm==15)
                {
                        tm=0;
                        HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_1);
                }
                delay_ms(10);
        }
        
}
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2018-6-6 01:21:27 | 显示全部楼层
先看屏幕跟着摄像头拍摄的内容有 相似的变化没有?如果没有,估计驱动完全就没起作用。
如果有一定动作,说明驱动问题不大,再调调 就O了。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

21

主题

108

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
355
金钱
355
注册时间
2017-11-25
在线时间
80 小时
 楼主| 发表于 2018-6-6 07:16:21 | 显示全部楼层
本帖最后由 往事啊 于 2018-6-6 15:28 编辑
正点原子 发表于 2018-6-6 01:21
先看屏幕跟着摄像头拍摄的内容有 相似的变化没有?如果没有,估计驱动完全就没起作用。
如果有一定动作, ...

我试了  有1/3屏有变化,另外的屏基本不动
478078c47e9d283d2317c70c53775c14.jpg
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2018-6-7 01:56:55 | 显示全部楼层
往事啊 发表于 2018-6-6 07:16
我试了  有1/3屏有变化,另外的屏基本不动

说明初始化可能成功了,问题在数据处理这里
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

21

主题

108

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
355
金钱
355
注册时间
2017-11-25
在线时间
80 小时
 楼主| 发表于 2018-6-7 10:21:54 | 显示全部楼层
正点原子 发表于 2018-6-7 01:56
说明初始化可能成功了,问题在数据处理这里

我觉得更新函数的读IO数据应该没问题啊   搞的有点崩溃   一直找不到原因
回复

使用道具 举报

21

主题

108

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
355
金钱
355
注册时间
2017-11-25
在线时间
80 小时
 楼主| 发表于 2018-6-12 14:32:12 | 显示全部楼层
本帖最后由 往事啊 于 2018-6-12 14:34 编辑
正点原子 发表于 2018-6-7 01:56
说明初始化可能成功了,问题在数据处理这里

我想用F7的C4-C11作为数据的输入口,出不了正常图像,是不是因为其中的引脚有DCMI接口,但我并没有开启啊
请知道答案的帮忙解惑一下


C.png
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2018-6-13 01:15:07 | 显示全部楼层
往事啊 发表于 2018-6-12 14:32
我想用F7的C4-C11作为数据的输入口,出不了正常图像,是不是因为其中的引脚有DCMI接口,但我并没有开启啊 ...

建议你用6~13试试。
4,5和网络共用,可能有干扰。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-28 02:06

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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