OpenEdv-开源电子网

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

求帮忙STM32,通过DMA采集摄像头数据,本来是外部触发的,DMA在第一次由像素信号触发后DMA变成了自动触发了

[复制链接]

2

主题

9

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2012-12-20
在线时间
0 小时
发表于 2013-1-27 16:16:31 | 显示全部楼层 |阅读模式

是通过TIM3CH1进行输入捕获来触发DMA的,在第一次DMA触发后将像素触发信号去掉后依旧在不断进入DMA完成中断。

求各位大神看看给个帮助            

DMA程序


 

#include "sys.h"
#include "usart.h"
#include "dma.h"
#include "led.h"

 

u8 hdsj; //采集的行数目
u16 ov7620_Buf[28][120]; //第一数组
//u16 ov7620_fdg[28][120]; //第一数组
//DMA1的各通道配置
//从存储器->外设模式/8位数据宽度/存储器增量模式
//DMA_CHXMA通道CHX
//cpar:外设地址
//cmar:存储器地址
//cndtr:数据传输器
void MYDMA_Config(DMA_Channel_TypeDef*DMA_CHx)
{ u32 DR_Base;                  
 RCC->AHBENR|=1<<0;            //开启DMA1时钟
 __nop();                      //等待 DMA1 时钟稳定
    __nop();                      //经测试最少 2 个 nop
    __nop();
 DMA_CHx->CPAR=OV7620_DATA;   //DMA1 外设地址
 DMA_CHx->CMAR=(u32)ov7620_Buf[0];   //DMA1, 存储器地址
 DMA_CHx->CNDTR=120;                 //DMA1,传输数据量
 DMA_CHx->CCR=0X00000000;   //复位
 DMA_CHx->CCR|=0<<4;      //从外设器件读数据
 DMA_CHx->CCR|=0<<5;                 //普通模式 
 DMA_CHx->CCR|=0<<6;      //外设地址非增量模式
 DMA_CHx->CCR|=1<<7;      //存储器增量模式
 DMA_CHx->CCR|=1<<8;      //外设数据宽度为16位
 DMA_CHx->CCR|=1<<10;     //存储器数据宽度16位
 DMA_CHx->CCR|=1<<12;     //中等优先级
 DMA_CHx->CCR|=0<<14;     //非存储器到存储器模式 
 DMA_CHx->CCR|=1<<1;      //传输完成中断使能
 MY_NVIC_Init(1,1,DMA1_Channel6_IRQn,1);//抢占1,子优先级1,组1
   
}
      

 //DMA中断函数
 void DMA1_Channel6_IRQHandler()
{
 if(DMA1->ISR & DMA1_FLAG_TC6)
 { 
  LED0=~LED0;
  KAISHI(DMA1_Channel6);
  DMA1->IFCR |=1<<22;// DMA1_FLAG_TC6; //清除完成传输中断
 }
}
//开启一次DMA传输
void MYDMA_Enable(DMA_Channel_TypeDef*DMA_CHx)
{
 TIM3->DIER|=1<<9;           //捕获比较1事件的DMA请求使能
 DMA_CHx->CCR|=1<<0;            //开启DMA传输  
}

//从新设定目的寄存器
void KAISHI(DMA_Channel_TypeDef*DMA_CHx)
 { 
   DMA_CHx->CCR&=~(1<<0);     //关闭DMA传输
  hdsj++;
  DMA_CHx->CNDTR=120 ;         //DMA1,传输数据量
  DMA_CHx->CMAR=(u32)ov7620_Buf[hdsj];  //DMA1, 存储器地址 
 }

开启DMA是在中断程序中


 

 
void EXTI1_IRQHandler() 

   if(EXTI_GetITStatus(EXTI_Line1) != RESET) 
 { 
     HANGSHUJU++;
  if(HANGSHUJU>=230)
  {
   EXTI->IMR&=~(1<<1);       //  关闭line BIT1上的中断 
            EXTI->EMR&=~(1<<1);       //  屏蔽line BIT1上的中断 
   CLHS_sj();
   EXTI->IMR|=1<<12;         //  开启line BIT12上的中断 
            EXTI->EMR|=1<<12;         //  未屏蔽line BIT12上的中断
 
  }
  else
  {
     if(HANGSHUJU%8==0)
      {  
     MYDMA_Enable(DMA1_Channel6);
      }
     
  }
     EXTI->R=1<<1;    
  }
}

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

使用道具 举报

2

主题

9

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2012-12-20
在线时间
0 小时
 楼主| 发表于 2013-1-27 16:18:09 | 显示全部楼层
且采集的数据完全错误是一直不变一群数。
#ifndef __DMA_H
#define __DMA_H    
#include "sys.h"

#define OV7620_DATA   (u32)&GPIOB->IDR&0x00FF   //数据输入端口
extern u16 ov7620_Buf[28][120];  //第一数组
extern u8 hdsj; //采集的行数目
void KAISHI(DMA_Channel_TypeDef*DMA_CHx);
void MYDMA_Config(DMA_Channel_TypeDef*DMA_CHx);
void MYDMA_Enable(DMA_Channel_TypeDef*DMA_CHx);
#endif
回复 支持 反对

使用道具 举报

2

主题

9

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2012-12-20
在线时间
0 小时
 楼主| 发表于 2013-1-27 16:19:37 | 显示全部楼层
采集到的部分数据转换成是ASCII码
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-1-27 18:13:51 | 显示全部楼层
仿真进入中断看看DMA->ISR寄存器,是哪些原因引起.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
22
金钱
22
注册时间
2013-9-3
在线时间
0 小时
发表于 2013-9-3 16:29:07 | 显示全部楼层
回复【楼主位】陈大大小朋友:
---------------------------------
这个问题我也碰到过 ,
DMA_CHx->CCR|=0<<5;                 //普通模式   

把普通模式改为循环模式就OK了
回复 支持 反对

使用道具 举报

4

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
85
金钱
85
注册时间
2014-6-15
在线时间
5 小时
发表于 2014-8-4 13:57:29 | 显示全部楼层
请问一下,为什么OV7620_DATA是 (u32)&GPIOB->IDR&0x00FF而不是直接(u32)&GPIOB->IDR?此时IO口怎么配置,是什么输入?
还有DMA的通道1没有GPIO外设,可以用吗?
回复 支持 反对

使用道具 举报

3

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2015-10-18
在线时间
1 小时
发表于 2015-10-30 23:35:39 | 显示全部楼层
楼主问题解决了么 在下现在也碰到这个问题 DMA读不到真正的摄像头数据 我也是f103+OV7620的 最好来个工程文件参考下 多谢了
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-19 14:44

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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