STM32项目分享:OV7670将图片上传电脑

目录

一、前言

二、项目简介

1.功能详解

2.主要器件

三、原理图设计

四、PCB硬件设计

1.PCB图 

2.PCB板及元器件图

五、程序设计 

六、实验效果 

七、资料内容

项目分享


一、前言

项目成品图片:

哔哩哔哩视频链接:

https://www.bilibili.com/video/BV1pt421b74E/?share_source=copy_web&vd_source=097fdeaf6b6ecfed8a9ff7119c32faf2

(资料分享见文末) 

二、项目简介

1.功能详解

STM32单片机通过OV7670将图片上传电脑。功能如下:

  1. 摄像头识别:OV7670摄像头获取图像数据
  2. 屏幕显示:通过摄像头采集图像,并实时驱动TFT液晶屏显示相应图像。
  3. 按键拍照:通过按键使屏幕图像暂停或开启采集
  4. 串口上传电脑:通过USB线把暂停得到的图像上传到电脑串口助手

2.主要器件

  • STM32F103RCT6最小系统板
  • 2.8寸TFT显示屏
  • OV7670摄像头模块

三、原理图设计

四、PCB硬件设计

1.PCB图 

2.PCB板及元器件图

五、程序设计 

int main(void)
{  
	unsigned int num=0;
	int flag = 0;
	Stm32_Clock_Init(16);//初始化时钟
	Led_init();			//初始化 LED	
	Lcd_Gpio_Init();
	LCD_Init();	
	Key_init();	//初始化 KEY1 PA8
	OV7670_Gpio_Init();//OV7670引脚初始化,放在串口初始化前面
	GPIO_WriteBit(FIFO_OE_PORT, FIFO_OE_PIN, 0);
	USART1_init();//初始化串口	
	TIM3_Configuration();//10Khz的计数频率,计数到5000为500ms  
	LCD_Fill(0x6666);		
	printf("Welecom\r\n");
	while(!Sensor_init());
	LCD_Fill(0xF800);
	delayms(100);
	num=2;
	u8 key;					//键值	
    //二值化阈值	
	R_a=24;
	G_a=53;
	B_a=24;
	while(1)
	{
		//Data_LCD_ColorChange_Test();//摄像头扫描测试
		//Data_LCD_ColorChange();
		Data_LCD_Display();
		key=KEY_Scan(0);//不支持连按
		if(key==KEY1_PRES)
		{
			GPIO_WriteBit(FIFO_WR_PORT, FIFO_WR_PIN, 0); //FIFO写禁止
			while(1)
			{
				key = KEY_Scan(0);
				if(key==KEY1_PRES)
				{
                    GPIO_WriteBit(FIFO_WR_PORT, FIFO_WR_PIN, 1);        //FIFO写使能
					break;
				}
				if(key==KEY2_PRES)
				{
					send_pic_using_USART();
					LED();
					delay_ms(1000);//等待1.8秒钟
					break;
				}
			}
		}
	}
}

六、实验效果 

七、资料内容

项目分享

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值