STM32103单片机读写OV2640 摄像头模块驱动测试程序工程源码,可以做为你的学习设计参考。
int main(void)
{
u8 res;
u8 *pname; //带路径的文件名
u8 key; //键值
u8 sd_ok=1; //0,sd卡不正常;1,SD卡正常.
u16 pixcnt=0; //像素统计
u16 linecnt=0; //行数统计
Stm32_Clock_Init(9); //系统时钟设置
uart_init(72,115200); //串口初始化为115200
delay_init(72); //延时初始化
usmart_dev.init(72); //初始化USMART
LED_Init(); //初始化与LED连接的硬件接口
KEY_Init(); //初始化按键
LCD_Init(); //初始化LCD
BEEP_Init(); //蜂鸣器初始化
W25QXX_Init(); //初始化W25Q128
my_mem_init(SRAMIN); //初始化内部内存池
exfuns_init(); //为fatfs相关变量申请内存
f_mount(fs[0],"0:",1); //挂载SD卡
f_mount(fs[1],"1:",1); //挂载FLASH.
POINT_COLOR=RED;
while(font_init()) //检查字库
{
LCD_ShowString(30,50,200,16,16,"Font Error!");
delay_ms(200);
LCD_Fill(30,50,240,66,WHITE);//清除显示
}
Show_Str(30,50,200,16,"STM32F103 开发板",16,0);
Show_Str(30,70,200,16,"OV2640照相机实验",16,0);
Show_Str(30,90,200,16,"KEY0:拍照(bmp格式)",16,0);
Show_Str(30,110,200,16,"KEY1:拍照(jpg格式)",16,0);
Show_Str(30,130,200,16,"2015年4月16日",16,0);
res=f_mkdir("0:/PHOTO"); //创建PHOTO文件夹
if(res!=FR_EXIST&&res!=FR_OK) //发生了错误
{
Show_Str(30,150,240,16,"SD卡错误,无法拍照!",16,0);
sd_ok=0;
}
ov2640_framebuf=mymalloc(SRAMIN,52*1024);//申请帧缓存
pname=mymalloc(SRAMIN,30); //为带路径的文件名分配30个字节的内存
while(!pname||!ov2640_framebuf) //内存分配出错
{
Show_Str(30,150,240,16,"内存分配失败!",16,0);
delay_ms(200);
LCD_Fill(30,150,240,146,WHITE);//清除显示
delay_ms(200);
}
while(OV2640_Init()) //初始化OV2640
{
Show_Str(30,150,240,16,"OV2640 错误!",16,0);
delay_ms(200);
LCD_Fill(30,150,239,206,WHITE);
delay_ms(200);
}
Show_Str(30,170,200,16,"OV2640 正常",16,0);
delay_ms(1500);
//TIM6_Int_Init(10000,7199); //10Khz计数频率,1秒钟中断,屏蔽则不打印帧率
OV2640_RGB565_Mode(); //RGB565模式
OV2640_OutSize_Set(lcddev.width,lcddev.height);
ov2640_sp