本文主要是介绍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将图片上传电脑。功能如下:
- 摄像头识别:OV7670摄像头获取图像数据
- 屏幕显示:通过摄像头采集图像,并实时驱动TFT液晶屏显示相应图像。
- 按键拍照:通过按键使屏幕图像暂停或开启采集
- 串口上传电脑:通过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 PA8OV7670_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;}}}}
}
六、实验效果
七、资料内容
项目分享
这篇关于STM32项目分享:OV7670将图片上传电脑的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!