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. 项目到github

    2024-06-15 01:48:03       53 阅读
  2. 本地项目git仓库

    2024-06-15 01:48:03       31 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-15 01:48:03       75 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-15 01:48:03       80 阅读
  3. 在Django里面运行非项目文件

    2024-06-15 01:48:03       64 阅读
  4. Python语言-面向对象

    2024-06-15 01:48:03       75 阅读

热门阅读

  1. 探究Spring Boot自动配置的底层原理

    2024-06-15 01:48:03       35 阅读
  2. Flutter InAppWebView Unknown feature SUPPRESS_ERROR_PAGE

    2024-06-15 01:48:03       39 阅读
  3. 双标引领:汽车软件安全的ASPICE与ISO21434之道

    2024-06-15 01:48:03       37 阅读
  4. ubuntu 深度学习服务器搭建

    2024-06-15 01:48:03       23 阅读
  5. 浅谈Web开发的三大主流框架:Angular、React和Vue.js

    2024-06-15 01:48:03       27 阅读
  6. 如何在WordPress中上传多种安装包文件

    2024-06-15 01:48:03       26 阅读
  7. 面试真题:消费者积压问题的答案

    2024-06-15 01:48:03       27 阅读
  8. 第四章_Docker资源控制

    2024-06-15 01:48:03       27 阅读