基于STM32的照相机系统软件设计

单片机系列 2017-12-04 09:36 次阅读
系统软件设计 关于STM32的片上资源,LCD ILI9341液晶屏的基本配置,SD卡的驱动及文件系统,OV7725摄像头功能的介绍已经在上一个章节中进行了详细的说明。硬件平台的搭建都是建立在STM32开发板与其他器件模块连接上的,本章节则主要采用自顶向下,层层细化的程序设计思想,分模块讲解整个系统的软件实现流程。

3.1 顶层程序设计

STM32照相机基本流程可以描述为:系统初始化,拍照处理。首先是系统初始化,包括系统时钟配置,对按键的GPIO和中断使能,LEDGPIO初始化;再初始化LCDGPIOFSMC总线功能和内部寄存器;还有初始化SDFATFS文件系统并使能SDIO的中断;最后,在实现模拟SCCB总线后,OV7725还需要配置FIFOGPIOOV7725内部的寄存器,并初始化场信号线。接着,拍照处理:等待帧同步信号,进入摄像;等待按键,开始拍照(即液晶截屏)并将图片保存到SD卡中,见图3.1

3.2 系统初始化程序设计

3.2.1 GPIO初始化 在第二章的主控模块部分已经介绍了GPIO的寄存器和引脚的输入输出模式,对复用功能实现也做出了详细说明。在STM32控制下的LEDKEYGPIO以及LCDSD card,摄像头使用的所有GPIO或特殊功能引脚的设置都要通过流程图来实现(图3.2)。 3.2.2 LCD初始化 LCD初始化主要包括两个内容:FSMC总线配置,LCD寄存器配置,见图3.3。程序中的涉及液晶屏的读写操作(如清屏,设置液晶扫描方向以及写入图片信息),都是在向Bank1_LCD_CBank1_LCD_D两个区域分别写入命令和数据实现的。其中,命令/数据的含义可参考ILI9341参考手册上的内容,在第二章的液晶显示模块中也给出了部分指令的含义。 3.2.3 SD卡文件系统初始化 SD卡文件系统初始化可分两块:SD卡中断初始化和硬件初始化。如何设置中断和FatFs文件系统的函数接口前面都已经介绍过了,图3.4是整个SD卡文件系统的初始化流程图。 3.2.4 OV7725初始化 摄像头OV7725的初始化分为三大部分:SCCB总线和FIFO的GPIO初始化,传感器的初始化,场信号线的初始化。其中的SCCB总线时序在上一章已经讲过,图3.5是OV7725初始化的程序流程图。 3.1 主程序流程图              3.2 GPIO的配置及复用   图3.3 LCD初始化流程 3.4 SD卡文件初始化流程 3.5 OV7725初始化流程

3.3 拍照处理程序设计

前几个小节详细介绍了各个子模块的初始化的实现,从主程序框图上看,还要有FIFO的准备,图像采集与显示,中断服务程序,液晶截屏与保存子程序。FIFO的准备(使能数据出FIFO输出),图像采集与显示是通过反复的读FIFO的输出并往LCD寄存器写入数据的过程,这些可以参考第二章的液晶显示模块和图像采集模块中FIFO的时序。最后一小节的重点是液晶截屏和图片保存的流程控制,见图3.6 3.6 液晶截屏与保存流程

原文标题:基于STM32的照相机系统的实现(系统软件设计) 文章出处:【微信号:SCMseries,微信公众号:单片机系列】欢迎添加关注!文章转载请注明出处。
关注电子发烧友微信
有趣有料的资讯及技术干货
下载发烧友APP
打造属于您的人脉电子圈
关注发烧友课堂
锁定最新课程活动及技术直播
收藏 人收藏
分享:

评论

相关推荐

stm32 usb转串口的程序设计解析

了解USB虚拟串口,为了在项目中用一下这个USB,调试方便一些,供电可直供。公司以后的产品开发就基于....
发表于 12-13 15:56 次阅读 0条评论
stm32 usb转串口的程序设计解析

全面剖析基于stm32的四轴飞行器设计方案

四轴飞行器是一种利用四个旋翼作为飞行引擎来进行空中飞行的飞行器。进入20世纪以来,电子技术飞速发展四....
的头像 电子设计 发表于 12-13 09:52 次阅读 0条评论
全面剖析基于stm32的四轴飞行器设计方案

单片机中Avr和Stm32区别及选取技巧详解

1μs的双12位ADC,4兆位/秒的UART,18兆位/秒的SPI等等,在功耗和集成度方面也有不俗的....
的头像 EDN电子技术设计 发表于 12-11 19:23 次阅读 0条评论
单片机中Avr和Stm32区别及选取技巧详解

基于STM32的步行者航位推算装置设计

本文主要介绍了基于STM32F103RBT6单片机的步行者航位推算装置的硬件设计与采用的软件算法,完....
发表于 12-11 17:38 次阅读 0条评论
基于STM32的步行者航位推算装置设计

avr单片机和stm32区别与优缺点分析

摘要:avr单片机和stm32单片机是目前使用较广泛的单片机,那么avr单片机和stm32单片机有什....
发表于 12-10 10:31 次阅读 0条评论
avr单片机和stm32区别与优缺点分析

最全STM32外设资料汇总

最全STM32外设资料汇总。STM32外设指的是单片机外围模块,常见的STM32外设有:IO、TIM....
发表于 12-08 14:49 次阅读 0条评论
最全STM32外设资料汇总

STM32系列芯片命名规则是怎样的

STM32系列基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARM Cortex-M3内核....
发表于 12-08 10:42 次阅读 0条评论
STM32系列芯片命名规则是怎样的

模糊PID控制系统设计的特点、优势详解

本文以STM32为主控制器,电机驱动芯片DRV8834 为驱动器,驱动半导体致冷器(帕尔贴)给散热片....
的头像 MCU开发加油站 发表于 12-05 11:42 次阅读 0条评论
模糊PID控制系统设计的特点、优势详解

STM32的ADC采样频率及相应时间的确定

STM32 ADC 是一个12 位精度、 一种逐次逼近型模拟数字转换器。它有多达18个通道,可测量1....
发表于 12-05 10:21 次阅读 0条评论
STM32的ADC采样频率及相应时间的确定

STM32的ADC的采样周期确定

首先确定ADC 的时钟,这里需要看你的RCC的设置。在采用固件库的基础上,设定ADC的采样频率相对来....
发表于 12-05 09:56 次阅读 0条评论
STM32的ADC的采样周期确定

通过STM32固件库V3.5.0来建立一个简单的工程模版

  首先,打开Keil,选择Project-》New uVision Project,选择合适的文件....
发表于 12-01 14:11 次阅读 0条评论
通过STM32固件库V3.5.0来建立一个简单的工程模版

一款基于stm32芯片的智能家居系统的设计

科学技术的高速发展大大提高了人们的生活品质,智能家居作为高品质生活的代表产品越来越受到人们的关注。智....
发表于 11-30 11:21 次阅读 0条评论
一款基于stm32芯片的智能家居系统的设计

STM32的IO口灌入电流和输出驱动电流最大是多少?

刚开始我对STM32的认识不够,以为是跟51单片机类似,可以直接操作端口,可是LED灯却没反应,于是....
发表于 11-30 11:08 次阅读 0条评论
STM32的IO口灌入电流和输出驱动电流最大是多少?

如何理解STM32系统时钟和分频

STM32中有一个全速功能的USB模块,其串行接口引擎需要一个频率为48MHz的时钟源。该时钟源只能....
发表于 11-30 09:14 次阅读 0条评论
如何理解STM32系统时钟和分频

STM32学习之RCC时钟配置

用户可通过多个预分频器配置AHB总线、高速APB2总线和低速APB1总线的频率。AHB和APB2域的....
发表于 11-30 09:01 次阅读 0条评论
STM32学习之RCC时钟配置

STM32的can现场总线的特点及工作流程分析

最近在搞stm32实验板的can现场总线实验,之前只是搞过STC51的串口通信,相比之下,发觉can....
发表于 11-29 19:49 次阅读 0条评论
STM32的can现场总线的特点及工作流程分析

基于stm32的FSK调制解调器的设计(原理及程序)

大致要求:设计一个FSK调制解调器,基带信号码速率为2000B/s,载波速率为4khz和8khz,解....
发表于 11-29 19:46 次阅读 0条评论
基于stm32的FSK调制解调器的设计(原理及程序)

基于STM32的简易四轴飞行器系统的设计实现

四轴飞行器是一种结构紧凑、飞行方式独特的垂直起降式飞行器,与普通的飞行器相比具有结构简单,故障率低和....
发表于 11-29 17:56 次阅读 0条评论
基于STM32的简易四轴飞行器系统的设计实现

STM32与SD卡通信各层分析

最近做了一些STM32和SD卡通信的一些思考,一直以来SD的驱动和应用困扰了我很久,寒假的时候看到S....
发表于 11-29 17:51 次阅读 0条评论
STM32与SD卡通信各层分析

模拟智能家居的环境下的家庭服务机器人系统的设计

为解决当前大部分家庭服务机器人不具备行走功能或只具有简单的避障能力等问题,本文设计一种基于STM32....
发表于 11-29 17:15 次阅读 0条评论
模拟智能家居的环境下的家庭服务机器人系统的设计