资源简介
基于飞思卡尔单片机K60的OV7620数字摄像头DMA读写程序
代码片段和文件信息
/**
* --------------基于“拉普兰德K60底层库V3“的工程(LPLD_OV7670)-----------------
* @file LPLD_OV7670.c
* @version 0.1
* @date 2013-9-29
* @brief 利用DMA模块,实现数字摄像头OV7670的图像读取。
*
* 版权所有:北京拉普兰德电子技术有限公司
* http://www.lpld.cn
* mail:support@lpld.cn
* 硬件平台: LPLD K60 Card / LPLD K60 Nano
*
* 本工程基于“拉普兰德K60底层库V3“开发,
* 所有开源代码均在“lib“文件夹下,用户不必更改该目录下代码,
* 所有用户工程需保存在“project“文件夹下,以工程名定义文件夹名,
* 底层库使用方法见相关文档。
*
*/
#include “common.h“
#include “DEV_SCCB.h“
/****************************************
说明:
*将MiniUSB线插入RUSH Kinetis开发板的USB
插座,并连接至电脑USB接口。
*将OV7670上位机波特率设置为115200
*使用上位机查看运行结果
****************************************/
//图像宽度
#define H 250
//图像高度
#define V 200
#define PHOTO_SIZE H*V
void porta_isr(void);
void portb_isr(void);
void gpio_init(void);
void dma_init(void);
uint8 ov7670_init();
void delay(void);
GPIO_InitTypeDef pta_init;
GPIO_InitTypeDef ptb_init;
GPIO_InitTypeDef pte_init;
GPIO_InitTypeDef ptd_init;
DMA_InitTypeDef dma_init_struct;
uint8 Pix_Data[PHOTO_SIZE]; //采集50行 200列的图像数据
uint32 V_Cnt; //行采集计数
uint8 Is_DispPhoto; //图像发送标志
/********************************************************************/
void main (void)
{
//关闭全局中断
DisableInterrupts;
ov7670_init();
delay();
V_Cnt=0; //行计数
Is_DispPhoto=0; //显示图像
gpio_init();
dma_init();
//使能PORTA、PORTB中断
enable_irq(PORTB_IRQn);
enable_irq(PORTA_IRQn);
//使能全局中断
EnableInterrupts;
while(1)
{
if(Is_DispPhoto==1)
{
Is_DispPhoto = 0;
//显示或发送图像数据
//可根据上位机软件自行修改此处
//清PORTA中断标志
LPLD_GPIO_ClearIntFlag(PORTA);
//使能PORTA中断
enable_irq(PORTA_IRQn);
}
}
}
void gpio_init()
{
//OV数据口初始化:PTD8~PTD15
ptd_init.GPIO_PTx = PTD;
ptd_init.GPIO_Dir = DIR_INPUT;
ptd_init.GPIO_Pins = GPIO_Pin8_15;
ptd_init.GPIO_PinControl = IRQC_DIS | INPUT_PULL_DIS;
LPLD_GPIO_Init(ptd_init);
//OV行信号接口初始化:PTB3-H
ptb_init.GPIO_PTx = PTB;
ptb_init.GPIO_Dir = DIR_INPUT;
ptb_init.GPIO_Pins = GPIO_Pin3;
ptb_init.GPIO_PinControl = IRQC_RI|INPUT_PULL_DOWN;
ptb_init.GPIO_Isr = portb_isr;
LPLD_GPIO_Init(ptb_init);
//OV场信号接口初始化:PTA5-V
pta_init.GPIO_PTx = PTA;
pta_init.GPIO_Dir = DIR_INPUT;
pta_init.GPIO_Pins = GPIO_Pin5;
pta_init.GPIO_PinControl = IRQC_RI|INPUT_PULL_DOWN;
pta_init.GPIO_Isr = porta_isr;
LPLD_GPIO_Init(pta_init);
//OV PCLK信号接口初始化:PTE6-PCLK
pte_init.GPIO_PTx = PTE;
pte_init.GPIO_Pins = GPIO_Pin6;
pte_init.GPIO_Dir = DIR_INPUT;
pte_init.GPIO_PinControl = IRQC_DMARI | INPUT_PULL_DIS;
LPLD_GPIO_Init(pte_init);
}
void dma_init()
{
//DMA参数配置
dma_init_struct.DMA_CHx = DMA_CH0; //CH0通道
dma_init_struct.DMA_Req = PORTE_DMAREQ; //PORTE为请求源
dma_init_struct.DMA_MajorLoopCnt = H; //主循环计数值:行采集点数,宽度
dma_init_struct.DMA_MinorByteCnt = 1; //次循环字节计数:每次读入1字节
d
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2013-10-09 23:35 33-(DMA)LPLD_OV7670\
目录 0 2013-10-09 23:35 33-(DMA)LPLD_OV7670\app\
文件 3091 2013-10-04 17:53 33-(DMA)LPLD_OV7670\app\k60_card.h
文件 5190 2013-10-04 16:11 33-(DMA)LPLD_OV7670\app\LPLD_OV7670.c
目录 0 2013-11-04 18:54 33-(DMA)LPLD_OV7670\iar\
文件 169 2013-10-04 15:05 33-(DMA)LPLD_OV7670\iar\LPLD_OV7670.eww
文件 125429 2013-11-04 18:53 33-(DMA)LPLD_OV7670\iar\LPLD_OV7670_K60.dep
文件 94871 2013-10-04 15:05 33-(DMA)LPLD_OV7670\iar\LPLD_OV7670_K60.ewd
文件 84290 2013-11-04 18:53 33-(DMA)LPLD_OV7670\iar\LPLD_OV7670_K60.ewp
- 上一篇:SharpMap官方教程
- 下一篇:16PF测试表
相关资源
- SPWM波产生STM32F103 DMA
- 基于ANSYS与ADAMS的柔性体联合仿真.pd
- ADAMS柔性体建模方法的研究.pdf
- 3DMAX2017注册机.zip
- I.MX6 DMA驱动测试历程imx6 sdma mem to me
- 基于IAR的STM8L152的USART、ADC(双通道)
- MSP430ADC采样通过DMA传输到串口发送
- SystemView仿真资料CDMA码分多址资料大全
- ISO_lane_change.dcf
- MDXimporter导3dMax插件.zip 工具
- 3DMark11 CD key
- 3Dmax 快捷键3D.kbd
- PCIe接口高速数据传输卡的驱动开发
- stm32 的I2C-DMA实现
- 硬盘安装助手
- STM32F4076路串口DMA发送&接收实验
- stm32f10x相关库文件 (包含: stm32f10x
- STM32 ADCDMA实现
- sendmail编译安装方法
- ADAMS参数化建模与优化设计.pdf
- 目前和利时的 MACS V 系统与西门子的
- 中兴资料全集,中兴试题,网规网优
- STM32F103串口DMA接收
- STM32 DMA中断模式下ADC多通道数据采集
- STM32HAL库使用NTC热敏电阻读取温度代码
- MindjetMindManager2012keygenl.rar
- 1024点FFT快速傅立叶变换,16位数据输
- Dlib FaceLandmark Detector v1.2.0
- 无线通信系统概述
- stm32f103代码
评论
共有 条评论