STM32摄像头实验相关源码分享[二值化]

我只是一个无情的硬盘代码搬运工~
我的电脑里资源好多呀,都是当年熬夜在实验室不要命的搞的。
想想当时,真的努力啊!现在也不差!!!就是想开学,想我的实验室…
看看文件夹吧:
1

2
其他就不一一发了,文件夹太多,慢慢分享吧!
二值化代码main.c部分(核心就在main.c)

#include "led.h"
#include "delay.h"
#include "key.h"
#include "sys.h"
#include "lcd.h"
#include "usart.h"	 
#include "string.h"
#include "ov7725.h"
#include "ov7670.h"
#include "tpad.h"
#include "timer.h"
#include "exti.h"
#include "usmart.h"


/************************************************
 ALIENTEK战舰STM32开发板实验35
 摄像头OV7725和OV7670 实验
 技术支持:www.openedv.com
 淘宝店铺:http://eboard.taobao.com 
 关注微信公众平台微信号:"正点原子",免费获取STM32资料。
 广州市星翼电子科技有限公司  
 作者:正点原子 @ALIENTEK
************************************************/


#define  OV7725 1
#define  OV7670 2

//由于OV7725传感器安装方式原因,OV7725_WINDOW_WIDTH相当于LCD的高度,OV7725_WINDOW_HEIGHT相当于LCD的宽度
//注意:此宏定义只对OV7725有效
#define  OV7725_WINDOW_WIDTH		320 // <=320
#define  OV7725_WINDOW_HEIGHT		240 // <=240


const u8*LMODE_TBL[6]={
   "Auto","Sunny","Cloudy","Office","Home","Night"};//6种光照模式	    
const u8*EFFECTS_TBL[7]={
   "Normal","Negative","B&W","Redish","Greenish","Bluish","Antique"};	//7种特效 
extern u8 ov_sta;	//在exit.c里 面定义
extern u8 ov_frame;	//在timer.c里面定义 


u16 Binary_threshold=65535/2;/*二值化阀值*/

//更新LCD显示(OV7725)
void OV7725_camera_refresh(void)
{
   
    u8 key;
	u32 i,j;
 	u16 color;	 
	if(ov_sta)//有帧中断更新
	{
   
		LCD_Scan_Dir(U2D_L2R);//从上到下,从左到右
		LCD_Set_Window((lcddev.width-OV7725_WINDOW_WIDTH)/2,(lcddev.height-OV7725_WINDOW_HEIGHT)/2,OV7725_WINDOW_WIDTH,OV7725_WINDOW_HEIGHT);//将显示区域设置到屏幕中央
		if(lcddev.id==0X1963)
			LCD_Set_Window((lcddev.width-OV7725_WINDOW_WIDTH)/2,(lcddev.height-OV7725_WINDOW_HEIGHT)/2,OV7725_WINDOW_HEIGHT,OV7725_WINDOW_WIDTH);
  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值