基于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的 一个TIM1 的PWM程序和PWM简单使用

高级定时器与通用定时器比较类似,下面是一个TIM1 的PWM 程序,TIM1是STM32唯一的高级定....
发表于 02-24 14:39 次阅读 0条评论
关于STM32的 一个TIM1 的PWM程序和PWM简单使用

STM32定时器产生PWM彻底应用

这次学习STM32花了很长时间,一个礼拜多,也有颇多收获,学习过程也有颇多曲折。这次的任务是:用ST....
发表于 02-11 11:26 次阅读 0条评论
STM32定时器产生PWM彻底应用

STM32基础PWM输出

目的:基础PWM输出,以及中断配合应用。输出选用PB1,配置为TIM3_CH4,是目标板的LED6控....
发表于 02-10 16:47 次阅读 0条评论
STM32基础PWM输出

stm32寄存器版矩阵键盘库函数(附详细注释)

新系列采用LQFP64、LQFP100和LFBGA100三种封装,不同的封装保持引脚排列一致性,结合....
发表于 02-09 11:48 次阅读 0条评论
stm32寄存器版矩阵键盘库函数(附详细注释)

stm32矩阵键盘原理图及程序介绍

STM32F0 系列产品基于超低功耗的 ARM Cortex-M0 处理器内核,整合增强的技术和功能....
的头像 beanxyy 发表于 02-09 11:30 次阅读 0条评论
stm32矩阵键盘原理图及程序介绍

STM32的GPIO输出编程实例之点亮三色LED

本实验通过STM32的三个GPIO口驱动三色LED的三个通道,将GPIO设置为推挽输出模式,采用灌电....
的头像 畅学单片机 发表于 02-07 11:14 次阅读 0条评论
STM32的GPIO输出编程实例之点亮三色LED

STM32的GPIO输入编程实例之读取按键状态

按键的一端与STM32的GPIO(PH15)相连,另外一端接地,且PH15外接一个1K电流大小的上拉....
的头像 畅学单片机 发表于 02-10 11:08 次阅读 0条评论
STM32的GPIO输入编程实例之读取按键状态

串口通信协议stm32

串口通信指串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用....
发表于 02-01 16:22 次阅读 0条评论
串口通信协议stm32

基于STM32实现孤立词语音识别系统

语音识别是机器通过识别和理解过程把人类的语音信号转变为相应文本或命令的技术,其根本目的是研究出一种具....
发表于 01-31 19:23 次阅读 0条评论
基于STM32实现孤立词语音识别系统

一款基于stm32的毕业设计方案

设计选用STM32单片机作控制器,设计温度单反馈的控制系统,对电加热水器内水的温度进行控制。通过PT....
发表于 01-29 14:22 次阅读 0条评论
一款基于stm32的毕业设计方案

基于stm32的电子秤方案大全(二款stm32的电子秤设计方案)

 电子秤(英文名:electronic balance)是衡器的一种,是利用胡克定律或力的杠杆平衡原....
发表于 01-29 12:05 次阅读 0条评论
基于stm32的电子秤方案大全(二款stm32的电子秤设计方案)

基于stm32的8m晶振不起振的原因解析

晶振不起振原因分析: (1) PCB板布线错误; (2) 单片机质量有问题; (3....
的头像 畅学单片机 发表于 01-26 15:41 次阅读 0条评论
基于stm32的8m晶振不起振的原因解析

提供多主机功能,STM32的I2C通信简析

在传输数据的时候,SDA线必须在时钟的高电平周期保持稳定,SDA的高或低电平状态只有在SCL 线的时....
的头像 MCU开发加油站 发表于 01-26 09:37 次阅读 0条评论
提供多主机功能,STM32的I2C通信简析

基于STM32的高性能低功耗的中文人机界面系统

本文选用了意法半导体公司基于ARM最新Cortex—M3内核的STM32F103RB作为主控芯片,通....
发表于 01-25 22:53 次阅读 0条评论
基于STM32的高性能低功耗的中文人机界面系统

每一个GPIO如何配置成一个外部中断触发源

1STM32中断分组STM32 的每一个GPIO都能配置成一个外部中断触发源,这点也是 STM32 ....
的头像 畅学单片机 发表于 01-25 08:44 次阅读 0条评论
每一个GPIO如何配置成一个外部中断触发源

基于STM32F103的水动力测控系统设计的解决方案

测控系统是水动力实验中的重要测试设备。在实验中有压力、拉力、加速度等物理量通过传感器转换成电压值,需....
发表于 01-25 05:40 次阅读 0条评论
基于STM32F103的水动力测控系统设计的解决方案

介绍如何通过意法的STM32 MCU实现用DMA完成多通道的AD采样功能

在嵌入式产品中有时候需要实现对外部的模拟量进行采样处理和记录,而这就需要使用到ADC功能,将外部的模....
的头像 贸泽电子设计圈 发表于 01-24 15:41 次阅读 0条评论
介绍如何通过意法的STM32 MCU实现用DMA完成多通道的AD采样功能

高集成度编程工具软件STM32代码烧录编程实战

如今ST推出了新的高集成度编程工具软件STM32CubeProgrammer,以后就不用这么麻烦了,....
的头像 ST MCU 信息交流 发表于 01-23 09:22 次阅读 0条评论
高集成度编程工具软件STM32代码烧录编程实战

STM32F407总线存储框架及应用设计

在使用过程中发现DMA1无法把GPIO的IDR数据传输到内存,调试过程中出现DMA1的数据流传输错误....
的头像 STM32单片机 发表于 01-22 09:22 次阅读 0条评论
STM32F407总线存储框架及应用设计

使用STM32快速开发AliOS Things硬件与软件环境

AliOS Things 是 AliOS 家族旗下的、面向 IoT 领域的、轻量级物联网嵌入式操作系....
的头像 STM32单片机 发表于 01-22 09:17 次阅读 0条评论
使用STM32快速开发AliOS Things硬件与软件环境