资源简介
基于飞思卡尔单片机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测试表
相关资源
- FreeRTOS采样ADC+KEY事件信号+DMA串口收发
- STM32F103RC+ADC+DMA多通道采样LCD显示
- 基于xilinx FPGA的PCIe设计实战
- 一个简单的verilog编写的DMA IP CORE,和
- stm32通过DMA方式采集ADC数据
- stm32的DAC播放音乐文件
- STM32F103 USART+DMA
- DMA+stm32 407.zip
- 4_USART串口通信(空闲中断+DMA.zip
- stm32f105-usart-DMA收发demo
- STM32F042F6P6 Uart12DMA;发送中断接收
- TD-SCDMA网络测试仪中E1数据采集卡的驱
- TD-SCDMA测试仪中Iub接口CDR的合成方案
- 安捷伦CDMA2000测试解决方案
- Pix4Dmapper4.4.10中文破解版带注册机网盘
- Pix4Dmapper4.4.10中文破解
- Pix4Dmapper教程
- stm32利用spi驱动tm1803
- qualcomm cdma technologies msm 驱动
- 基于溶胶凝胶法的TiO2溶胶的制备
- 矿井巷道时频编码协作MC-CDMA信道估计
- shape_predictor_68_face_landmarks.dat.bz2 68个标
- 3DMax的模型
- CDMA通信系统中的接入信道部分进行仿
- WCDMA系列化基站规模服务马来西亚
- 华为承建阿联酋电信3G/WCDMA网络投入商
- panda插件201264位 3DMAX转换.x文件工具把
- Mindmanager模板素材446个淘宝买的史上最
- zw_goodman110110110-4890707-gpops52.zip
- STM32_USART 多机通信学习笔记
评论
共有 条评论