基于STM32+OV7670+TFT显示(升级篇:将摄像头采集到的画面显示在TFT屏)
书接上文:https://blog.csdn.net/m0_59113542/article/details/123590333
本篇文章主要介绍如何采集到的图像显示在TFT。
一、效果展示
有图有真相
图片比任何语言都有说服力,话不多说直接上图。
清晰度是非常高的,所以说实验还是很成功的。
二、程序实现
在第一篇文章已经完成了ov7670的初始化,我们在这里只需要从FIFO中读取数据即可。
1、discern.c 摄像头取数据并显示文件
#include "discern.h"
#include "delay.h"
#include "lcd.h"
#include "ov7670.h"
#include "algorithm.h"void CameraScan(void)
{ //摄像头扫描测试vu16 a = 0,b = 0;LCD_SetWindows(0,0,320,240); //设置显示窗口GPIO_WriteBit(LCD_RS_PORT, LCD_RS_PIN,Bit_SET); //标志:数据写入while(GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_0)==1);GPIO_WriteBit(FIFO_WRST_PORT, FIFO_WRST_PIN, Bit_RESET); //写重置GPIO_WriteBit(FIFO_WRST_PORT, FIFO_WRST_PIN, Bit_SET);GPIO_WriteBit(FIFO_WR_PORT, FIFO_WR_PIN, Bit_SET);while(GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_0)==0);while(GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_0)==1);GPIO_WriteBit(FIFO_WR_PORT, FIFO_WR_PIN, Bit_RESET);FIFO_Reset_Read_Addr(); //读数据复位for(a = 0; a < 240; a++) {for(b = 0; b < 320; b++) { //数据手册时序图GPIOC->BRR = 1<<4; //gpioc 4 复位 时钟AA = GPIOA->IDR; //查看引脚电平状态 GPIOC->BSRR = 1<<4; //gpioc 4 置位GPIOC->BRR = 1<<4;BB = GPIOA->IDR&0x00ff; GPIOC->BSRR = 1<<4; color = (AA<<8)| BB; //读两次,十六位表示一个像素 LCD_DATA_PORT->ODR = color; //将颜色显示在LCD屏上GPIOC->BRR = 1<<11; //写数据GPIOC->BSRR = 1<<11;}}
}
主要是按照数据手册对相关参数进行配置。
2、discern.h
#ifndef __DISCERN_H
#define __DISCERN_H#include "stm32f10x.h"
#include "value.h"void CameraScan(void);#endif
3、main.c
#include "stm32f10x.h"
#include "stm32f10x_it.h"
#include "usart.h"
#include "delay.h"
#include "lcd.h"
#include "ov7670.h"
#include "rcc.h"
#include "ShowChar.h"
#include "discern.h"
int main(void)
{ unsigned int scan_time = 0;STM32_Clock_Init(16); //初始化时钟LCD_Init(); OV7670_GPIO_Init(); //OV7670引脚初始化,放在串口初始化前面//USART1_init(); //初始化串口 TIM3_Configuration(); //10Khz的计数频率,计数到5000为500ms LCD_Fill(0x6666); //初始化刷绿色屏while(!Sensor_Init()); //摄像头芯片初始化LCD_Fill(0xF800); //成功后刷红色屏delayms(100);while(1){CameraScan(); //摄像头扫描测试LCD_ShowNum(30,220,21 - scan_time, 2); if(scan_time == 20) {scan_time = 0;}scan_time++;}
}
大家如果想省事的话也可直接下载全部工程资料。
完整工程链接:https://download.csdn.net/download/m0_59113542/85002160?spm=1001.2014.3001.5503
欢迎大家指正交流,有空可以一起讨论代码啊。
制作不易,感谢大家支持,感谢!!!!!!
--------------一个正在努力的人
基于STM32+OV7670+TFT显示(升级篇:将摄像头采集到的画面显示在TFT屏)相关推荐
- 基于STM32进行OLED显示
目录 一.SPI接口简介 1.SPI的简介 2. SPI 接口4条线通信: 3.SPI的特征 4.接口框图 5.SPI整体的通讯过程 二.OLED的原理 1.OLED模块参数 2.该模块的特点: 3. ...
- 基于STM32的OLED显示
基于STM32的OLED显示 一.什么是OLED 二.了解SPI SPI协议概括 同步串行口 三.学号姓名的显示 1.汉字点阵获取 代码修改 3.硬件连接 4.烧录编译结果 总结 参考文献 一.什么是 ...
- 毕业设计 —— 基于STM32手势控制显示系统的设计
目录 一.前言 二.项目背景及资源分享 三.项目简介 1.项目名称 2.系统框架 3.功能简介 4.控制核心 5.最小系统: 6.外围模块: 四.相关设计原理及框图 1.系统设计的原理 2.手势识别原 ...
- 基于STM32单片机的差分升级(增量升级)算法移植手册V.3 STM32+BSDiff+LZ77
基于STM32单片机的差分升级算法移植手册V.3 STM32+BSDiff+LZ77 更新时间:2022-03-10 版本V1.3 同步更新如下: 基于STM32单片机的差分升级(增量升级)算法V1. ...
- 基于STM32开发板实现传感数据采集-DHT11温湿度采集
基于STM32开发板实现传感数据采集-DHT11温湿度采集 一.项目简介 本次项目是基于STM32开发板实现传感数据采集-DHT11温湿度采集.采用ARM结构中最为代表的Cortex-M4系列的芯片, ...
- 基于STM32单片机的差分升级(增量升级)算法
DiffIAP – STM32单片机可用的差分升级(增量升级),适用于物联网车联网IAP升级OTA升级 应用背景 随着目前物联网,车联网,智能设备的增多,需要远程升级设备程序的场景增多,以往的IAP升 ...
- STM32实例——基于STM32开发板实现传感数据采集-DHT11温湿度采集
STM32开发板实现传感数据采集-DHT11温湿度采集 一.前言 本项目是基于STM32开发板的温湿度采集,传感器采用DHT11温湿度传感器,软件采用keil5等.本项目采用ARM结构中最为代表的Co ...
- 基于STM32温室大棚监测系统Protues仿真设计温湿度采集光照
仿真演示视频 基于stm32温室大棚控制系统仿真设计温湿度采集光照采集protues设计物联网定制_哔哩哔哩_bilibili 开发软件Keil5+Protues8.9,温湿度传感器DHT11. 部分 ...
- 毕业设计——基于STM32+OV7670的图像采集车牌识别(终极篇:车牌识别)
书接上文:https://blog.csdn.net/m0_59113542/article/details/123592010?spm=1001.2014.3001.5502 本篇文章主要介绍如何对 ...
最新文章
- R语言使用ggpubr包可视化分组条形图(grouped bar plot)、并添加误差条(error bar、误差条显示平均值+/-sd)、添加分组填充色、添加jitter、自定义分组抖动数据点形状
- JBPM深入解析之变量设计
- mysql主从复制gtid_详解MySQL主从复制实战 - 基于GTID的复制
- 日期时间选择器-jeDate日期控件
- 电脑基本快捷键的使用
- 10款中小企业必备的开源免费安全工具
- WPF的ListBox的数据绑定,但需要添加控件在里面的时候
- 排版小知识 1.针对某个对象对齐
- Spring Framework--Data Access(1)--Transaction Management(2) - 声明式事务管理
- uiuc工程学院计算机,UIUC的ECE「伊利诺伊大学香槟分校电气与计算机工程系」
- 【管理心得之二十一】管得少就是管得好
- solr 配置中文分析器/定义业务域/配置DataImport功能(测试用)
- 家用宽带搭建个人服务器(一)
- 难倒高手了,c语言枚举end的作用是什么?
- 早餐吃菠萝好吗 早上可以吃菠萝吗
- 爆肝三天整理!2021年阿里巴巴社招面试题总结,三轮技术面+HR面,总结的明明白白!
- 迪杰斯特拉算法和弗洛伊德算法
- JAVA 制作给定时间倒计时器
- 双栈路由Linux,Linux模拟IPV6双栈路由器实现方案
- python数据拟合怎么做的,python如何实现数据的线性拟合
热门文章
- 【ROS】[rosrun] Couldn't find executable named
- python atm作业详解_Python小案例--ATM系统
- Python在游戏中的热更新
- 使用哈尔滨工业大学SCIR的开源代码训练自己的ELMo
- hdu6608 Fansblog(威尔逊定理)
- 读PPK谈javascript
- 义乌集训Day 6 T2
- dnf剑魂buff等级上限_DNF:剑魂职业改版加强,超一线剑魂职业如何技能加点?...
- 北京大学肖臻老师《区块链技术与应用》ETH笔记 - 3.0 ETH数据结构篇
- 图像类的分类模型假阳性(FP)高的解决思路