初级会员

- 积分
- 64
- 金钱
- 64
- 注册时间
- 2016-4-15
- 在线时间
- 15 小时
|

楼主 |
发表于 2016-6-25 22:00:18
|
显示全部楼层
#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "led.h"
#include "key.h"
#include "lcd.h"
#include "usmart.h"
#include "usart2.h"
#include "timer.h"
#include "ov2640.h"
#include "dcmi.h"
//ALIENTEK 探索者STM32F407开发板 实验35
//摄像头 实验 -库函数版本
//技术支持:www.openedv.com
//淘宝店铺:http://eboard.taobao.com
//广州市星翼电子科技有限公司
//作者:正点原子 @ALIENTEK
//JPEG尺寸支持列表
const u16 jpeg_img_size_tbl[][2]=
{
176,144, //QCIF
160,120, //QQVGA
352,288, //CIF
320,240, //QVGA
640,480, //VGA
800,600, //SVGA
1024,768, //XGA
1280,1024, //SXGA
1600,1200, //UXGA
};
u16 LCD_BGR2RGB1(u16 c)
{
u16 r,g,b;
b=(c>>0)&0x1f;
g=(c>>5)&0x3f;
r=(c>>11)&0x1f;
return r;
}
//RGB565测试
//RGB数据直接显示在LCD上面
void rgb565_test(void)
{
u32 hang,lie,j;
u16 Color_Sum,RGB,Color;
OV2640_RGB565_Mode(); //RGB565模式
My_DCMI_Init(); //DCMI配置
DCMI_DMA_Init((u32)&LCD->LCD_RAM,1,DMA_MemoryDataSize_HalfWord,DMA_MemoryInc_Disable);//DCMI DMA配置
OV2640_OutSize_Set(lcddev.width,lcddev.height);
DCMI_Start(); //启动传输,要是不要下面的延时的话,在主函数里就相当于DCMI_Start()一直执行,即不会显示图像,有延时的话,启动传输的程序就一直执行。
while(1)
{
RGB=LCD_ReadPoint(100,100); //随便写个点
// LCD -> LCD_RAM =
// Color = LCD -> LCD_RAM;
// LCD_WriteRAM_Prepare();
printf("%d\n",RGB);
// delay_ms(500);
}
}
int main(void)
{
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2
delay_init(168); //初始化延时函数
uart_init(115200); //初始化串口波特率为115200
usart2_init(42,115200); //初始化串口2波特率为115200
LED_Init(); //初始化LED
LCD_Init(); //LCD初始化
TIM3_Int_Init(10000-1,8400-1);//10Khz计数,1秒钟中断一次
usmart_dev.init(84); //初始化USMART
POINT_COLOR=RED;//设置字体为红色
while(OV2640_Init())//初始化OV2640
{
LCD_ShowString(0,0,300,16,16,"OV2640 ERR");
delay_ms(200);
}
LCD_ShowString(0,0,300,16,16,"OV2640 OK");
while(1)
{
rgb565_test(); //似乎只能执行这一步,因为此语句里带有while(1),所以它把上一句执行完后,就不会在执行上一句,同时,它不会执行下面的语句
}
}
|
|