智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 1385|回复: 1
打印 上一主题 下一主题

[咨询] OV7620摄像头在K60板子上不显示图像

[复制链接]

1

主题

2

帖子

0

精华

注册会员

Rank: 2

积分
97
威望
51
贡献
30
兑换币
29
注册时间
2017-4-10
在线时间
8 小时
毕业学校
新疆大学
跳转到指定楼层
1#
发表于 2017-4-13 13:06:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用的OV7620摄像头,K60核心板,测试程序下载好了,硬件连接好了,用的蓝牙通信,但是在上位机上怎么也看不到图像,这是什么原因????求大神告知!!!!!已经困在这里好多天了…………
我的硬件连接是正确的,蓝牙配置和连接也是正确的,波特率配置也是正确的。测试程序中采集到的图像是存放在一个二维数组当中的,但是现在二维数组中没有任何数值!!!!
我的代码
#include "include.h"
#include "common.h"
extern uint8 Is_SendPhoto;
extern unsigned char Pix_Data[ROW][COL];
void vcan_sendware(uint8*wareaddr, uint32 waresize);
void  main(void)
{
            uint16 i,j;
            uart_init(UART0,115200);
            OV7620_Init();//摄像头相关IO初始化
            //DELAY_MS(100);
   while(1)
  {
   
       if(Is_SendPhoto ==1)//单幅图像采集完成
      {
        DisableInterrupts;//关总中断,不进行图像采集
        uart_putchar(UART0,0xff);//发送帧头
        for(i=0;i<ROW;i++)
       {
           for(j=0;j<COL;j++)
         {
          if(Pix_Data[i][j]==255)  Pix_Data[i][j]--;//防止出现对个帧头
          uart_putchar(UART0,Pix_Data[i][j]);//发送像素点
        }
        }
         EnableInterrupts;//开总中断,再次进行图像采集
       }
       // DELAY_MS(100);
     //uart_putchar(UART5,'A');
   }
}
   #include "common.h"
#include "MK60_gpio.h"
#include "MK60_port.h"
#include "MK60_dma.h"
#include "OV7620.h"
#include "VCAN_SCCB.h"
void DMA_CH4_Handler(void);//DMA中断服务函数
void PORTC_IRQHandler(void);///行、场中断服务函数

uint16 V_Cnt=0;
uint8 Is_SendPhoto=0;
unsigned char Pix_Data[ROW][COL] ={1,1,1,1,1,1};

void OV7620_Init()
{
DisableInterrupts;//关总中断
gpio_init(PTE0, GPI,0); //摄像头数据传输的引脚  GPI改为GPO
gpio_init(PTE1, GPI,0);
gpio_init(PTE2, GPI,0);
gpio_init(PTE3, GPI,0);
gpio_init(PTE4, GPI,0);
gpio_init(PTE5, GPI,0);
gpio_init(PTE6, GPI,0);
gpio_init(PTE7, GPI,0);

SCCB_GPIO_init();//SCCB初始化
SCCB_WriteByte(0x11,0x03);//四分频
/*
SCCB_WriteByte(0x11,0x01);//二分频
SCCB_WriteByte(0x11,0x00);//不分频
SCCB_WriteByte(0x11,0x01);    //地址0X11-中断四分频(1280*480)           PCLK:166ns   HREF:254.6us   VSYN:133.6ms
SCCB_WriteByte(0x14,0x24);    //地址0X14-QVGA(320*240)                  PCLK:332ns   HREF:509.6us   VSYN:133.6ms
SCCB_WriteByte(0x28,0x40);    //地址0X28-黑白模式(320*240               PCLK:332ns   HREF:127us   VSYN:33.6ms  
*/
//PTC8像素中断,行中断,场中断设置为输入状态
   port_init(PTC18, ALT1 | IRQ_FALLING | PULLUP );     //场中断,上拉,上降沿触发中断
   port_init(PTC19, ALT1 | IRQ_RISING  | PULLDOWN );   //行中断,下拉,上降沿触发中断
//  port_init(PTC8, ALT1 | IRQ_FALLING | PULLUP );        //像素中断
//配置中断复位函数
  set_vector_handler(PORTC_VECTORn ,PORTC_IRQHandler);//设置PORTC外部中断的中断复位函数为 PORTC_IRQHandler
  set_vector_handler(DMA4_VECTORn ,DMA_CH4_Handler);//设置DMA4的中断复位函数为 DMA_CH4_Handler
  enable_irq(PORTC_IRQn);//使能PORTC中断,即开启行中断,PORTC的ISR中断号为89
// PORTC_IRQHandler();
  EnableInterrupts;//开总中断
}
                                   
void DMA_CH4_Handler(void)
{
    DMA_IRQ_CLEAN(DMA_CH4);                                 //清除通道传输中断标志位    (这样才能再次进入中断)
    DMA_DIS(DMA_CH4);                                       //采集完H个数据后进入这个DMA中断,停止DMA传输。行中断中打开DMA传输
    /********************/
    //串口调试用到
    if(V_Cnt == ROW)
      Is_SendPhoto = 1;
    /*******************/
}
//行场中断
void PORTC_IRQHandler()
{
   
   if((PORTC_ISFR & (1<<19)))                              //PTC18触发中断,行中断
    {
      PORTC_ISFR |= (1<<19);                                //写1清中断标志位
      /**************用户任务**************************************************/
   //   if((++V_Cnt)%4 == 0)                                  //判断该行数据是否需要,根据自己需要的行数自己设定判别条件
     // {
        V_Cnt++;
        DMA_EN(DMA_CH4);                                    //使能通道CHn 硬件请求
      //}
    }   
    //场中断
    if(PORTC_ISFR & (1<<18))                                 //PTB0触发中断,场中断
    {
      PORTE_ISFR |= (1<<18);                                 //写1清中断标志位   
      Is_SendPhoto = 0;                                   //发送图像标志,串口调试要用
      /**************用户任务*************************************************/
      OV7620_DMA_PORTx2BUFF_Init (DMA_CH4, (void *)&PTE_B0_IN, Pix_Data, PTC16, DMA_BYTE1, COL, DMA_rising_keepon);
      
      //DMA_CH4_Handler();
      //DMA通道4初始化,PTC16上升沿触发DMA传输,源地址为PTE_BYTE0_IN,
//目的地址为:Pix_Data ,每次传输1Byte,传输COL次后停止传输,目的地址保持不变,关闭通道CHn 硬件请求
      V_Cnt=0;            //行采集计数清零
      Is_SendPhoto =0;   //发送图像标志     
    }
}

   

回复

使用道具 举报

1

主题

11

帖子

0

精华

注册会员

Rank: 2

积分
166
QQ
威望
80
贡献
56
兑换币
50
注册时间
2017-3-23
在线时间
15 小时
毕业学校
新安中学
2#
发表于 2017-5-18 16:02:36 | 只看该作者
你的蓝牙是怎么连接的,我蓝牙连接之后上位机没有串口。帮忙解决一下。

回复 支持 反对

使用道具 举报

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

本版积分规则

关于我们|联系我们|小黑屋|亿加合和智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-5-4 17:47 , Processed in 0.088724 second(s), 35 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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