1. STM32
    +关注
    关注 508
    文章 2385
    浏览量 211270
  2. 照相机
    +关注
    关注 0
    文章 37
    浏览量 19359

基于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,微信公众号:单片机系列】欢迎添加关注!文章转载请注明出处。
收藏 人收藏
分享:

评论

相关推荐

插上手机卡到RPRS模块后,用串口助手查看连接状态,为什么显示一直是注册中呢,有谁碰到过这种问题呢

发表于 05-26 12:16 54次阅读
插上手机卡到RPRS模块后,用串口助手查看连接状态,为什么显示一直是注册中呢,有谁碰到过这种问题呢

【限时福利】100%免费获取Altium designer视频教程!

发表于 05-25 18:53 221次阅读
【限时福利】100%免费获取Altium designer视频教程!

嵌入式Stm32按键输入控制LED灯

发表于 05-25 14:24 166次阅读
嵌入式Stm32按键输入控制LED灯

stm32 Cortex M3内核 ,CPU调用__disable_irq函数关闭中断后,为何还能接收到中断????????

发表于 05-25 11:41 116次阅读
stm32 Cortex M3内核 ,CPU调用__disable_irq函数关闭中断后,为何还能接收到中断????????

基于STM32F103系列单片机的无线解说器

本实例是以STM32F103系列单片机作为核心处理器,利用VS1003芯片进行音频解码的一种无线解....
的头像 电子设计 发表于 05-25 10:00 656次阅读
基于STM32F103系列单片机的无线解说器

STM32的三种串口通信协议介绍

本文首先介绍了STM32串口硬件电路及串口编程,其次介绍了STM32的三种串口通信协议,最后介绍了S....
发表于 05-25 09:33 549次阅读
STM32的三种串口通信协议介绍

基于北斗卫星系统的机载高速摄像机时间同步器

在民用飞机飞行试验中,为了保证图像测试数据的准确可靠,机上图像测试系统中不同测试设备时间需要严格的统....
的头像 电子设计 发表于 05-25 08:24 229次阅读
基于北斗卫星系统的机载高速摄像机时间同步器

基于STM32的语音导览系统的设计方案

景点语音导览主要有以下几种方式:一种是通过全球定位系统(GPS)的用户终端接收工作卫星的导航信息,从....
的头像 电子设计 发表于 05-25 08:01 412次阅读
基于STM32的语音导览系统的设计方案

请问谁有STM32F407的OLED显示程序?移植了很多关于F1的代码到F4中就是不能显示着是什么原因?

发表于 05-24 21:25 109次阅读
请问谁有STM32F407的OLED显示程序?移植了很多关于F1的代码到F4中就是不能显示着是什么原因?

基于STM32C8T6的四旋翼飞行器控制系统硬件电路方案设计

本文基于四旋翼飞行器的工作原理和性能特点,设计了飞行器控制系统的硬件电路。系统包含微控制器模块、姿态....
的头像 电子设计 发表于 05-24 16:37 984次阅读
 基于STM32C8T6的四旋翼飞行器控制系统硬件电路方案设计

关于STM32H743 SD卡例程问题

发表于 05-24 11:17 183次阅读
关于STM32H743 SD卡例程问题

STM32F串口何时才需要打开复用功能?

发表于 05-23 01:29 347次阅读
STM32F串口何时才需要打开复用功能?

cc2530的串口发送问题

发表于 05-22 07:45 52次阅读
cc2530的串口发送问题

STM32的优势在哪里?如何使用DMA来进行ADC操作?

STM32的优点在哪里? 除去宣传环节,细细分析。 STM32时钟不算快,72MHZ, 也不能扩展....
发表于 05-22 07:32 141次阅读
STM32的优势在哪里?如何使用DMA来进行ADC操作?

请问MSP432中断嵌套配置问题怎么解决?

发表于 05-22 06:24 26次阅读
请问MSP432中断嵌套配置问题怎么解决?

STM32串口实现485双机通信的原理

如果按键按下了,就会发送数据,就会产生接收中断,就会往我们定义的接收缓冲区(RS485_RX_BUF....
的头像 玩转单片机 发表于 05-21 17:27 454次阅读
STM32串口实现485双机通信的原理

请问STM32单片机和 ABZ三相接口的编码器该怎么连接?

发表于 05-21 15:06 764次阅读
请问STM32单片机和 ABZ三相接口的编码器该怎么连接?

ad7606与stm32连接电路介绍

本文首先对stm32产品概述及特性进行了介绍,其次介绍了AD7606相关概念,最后介绍了ad7606....
发表于 05-21 11:45 188次阅读
ad7606与stm32连接电路介绍

一文了解STM32窗口看门狗的真正作用

STM32有2个看门狗:独立看门狗和窗口看门狗。 独立看门狗IWDG--独立于系统之外,因为有独立....
的头像 电子发烧友网工程师 发表于 05-20 10:17 337次阅读
一文了解STM32窗口看门狗的真正作用

如何判断STM32的复位类型_STM32软件复位bug有哪些

上电复位,是为了为程序的开始作好准备,强制的所有的数据清零,它必须要从零开始。
的头像 电子发烧友网工程师 发表于 05-20 10:06 361次阅读
如何判断STM32的复位类型_STM32软件复位bug有哪些

STM32F0多路ADC采样中的BUG和解决方案

使用CUBE生产的ADC无法配置多路采样,多路采样采集值不对,研究后发现是底层函数没有将CHANNE....
发表于 05-18 15:01 109次阅读
STM32F0多路ADC采样中的BUG和解决方案

一文解析stm32产生spwm原理及程序

SPWM(Sinusoidal PWM)法是一种比较成熟的,目前使用较广泛的PWM法。SPWM法就是....
的头像 陈翠 发表于 05-18 09:11 2119次阅读
一文解析stm32产生spwm原理及程序

stm32休眠_RTC定时唤醒来喂狗

在STM32开发中经常会用到独立看门狗(IWDG)和低功耗模式,看门狗是为了检测和解决由软件错误引起....
发表于 05-18 01:56 80次阅读
stm32休眠_RTC定时唤醒来喂狗

STM32独立看门狗和低功耗模式_RTC定时唤醒来喂狗

在STM32开发中经常会用到独立看门狗(IWDG)和低功耗模式,看门狗是为了检测和解决由软件错误引起....
发表于 05-18 01:55 67次阅读
STM32独立看门狗和低功耗模式_RTC定时唤醒来喂狗

STM32独立看门狗介绍_STM32单片机独立看门狗实验

STM32的独立看门狗由内部专门的40Khz低速时钟驱动,即使主时钟发生故障,它也仍然有效。这里需要....
发表于 05-18 01:49 84次阅读
STM32独立看门狗介绍_STM32单片机独立看门狗实验

基于STM32内置ADC实现简易示波器的程序设计与实现

ADC转换:STM32增强型芯片内置的2个独立ADC,可以有16个通道,并且2个通道可以并行的同步采....
发表于 05-18 01:44 216次阅读
基于STM32内置ADC实现简易示波器的程序设计与实现

STM32单片机的模拟看门狗的库函数设置

ADC的模拟看门狗用于检查电压是否越界。他又上下两个边界,可分别在寄存器ADC_HTR和ADC_LT....
发表于 05-18 01:29 52次阅读
STM32单片机的模拟看门狗的库函数设置

一文看懂stm32的引脚的两种用途:GPIO和AFIO

stm32的引脚有两种用途:GPIO(generalpurposeio)和AFIO(alternat....
发表于 05-18 01:22 161次阅读
一文看懂stm32的引脚的两种用途:GPIO和AFIO

STM32的ADC简介_DMA方式的程序设计与实现

ADC(Analog-to-Digital Converter,模/ 数转换器)。也就是将模拟信号....
发表于 05-18 01:12 149次阅读
STM32的ADC简介_DMA方式的程序设计与实现

一文读懂STM32之独立看门狗/窗口看门狗的原理

STM32的独立看门狗由内部专门的40Khz低速时钟驱动,即主时钟发生故障,它也仍然有效,这里我们需....
发表于 05-18 01:06 62次阅读
一文读懂STM32之独立看门狗/窗口看门狗的原理

ST MCU的生态系统:物联网催生新服务 STM32家底还算殷实?

生态系统原意是指在一定的地域内,生物与环境形成的统一的整体。随着经济社会的发展,现在我们提到生态系统....
发表于 05-17 17:16 666次阅读
ST MCU的生态系统:物联网催生新服务 STM32家底还算殷实?

窗口看门狗的作用是什么?窗口看门狗复位分析

程序初始化LED点亮延时300ms熄灭,窗口看门狗从0x7F开始递减计数,上窗口为0x5F,下窗口为....
发表于 05-17 13:54 106次阅读
窗口看门狗的作用是什么?窗口看门狗复位分析

STM32看门狗WWDG和IWDG的区别是什么

STM32有2个看门狗:独立看门狗和窗口看门狗。 独立看门狗IWDG:独立于系统之外,因为有独立时....
发表于 05-17 13:51 46次阅读
STM32看门狗WWDG和IWDG的区别是什么

stm32驱动ad9854程序分享_ad9854构成信号发生器电路

AD9854数字合成器是高集成度的器件。本文首先介绍了ad9854优势和特点,其次介绍了ad9854....
的头像 电子魔法师 发表于 05-17 09:23 317次阅读
stm32驱动ad9854程序分享_ad9854构成信号发生器电路

STM32调试步骤

调试前,首先跳线J9的2-3脚短接,跳线J4的右边两个脚短接,跳线J5短接,J8短接,J2的1-2短....
的头像 畅学单片机 发表于 05-16 10:42 481次阅读
STM32调试步骤

了解TrueSTUDIO9.0给STM32开发带来的新价值

现在ST正式发布整合后第一个Atollic TrueSTUDIO版本 9.0,正式为STM32用户提....
的头像 ST MCU 信息交流 发表于 05-16 09:24 939次阅读
了解TrueSTUDIO9.0给STM32开发带来的新价值

AVRNET源码并移植STM32 ARP和Ethernet的实现过程

eth_generate_header函数实现了填充以太网首部的功能,第一个输入参数为发送接收缓冲区....
发表于 05-15 09:15 135次阅读
AVRNET源码并移植STM32 ARP和Ethernet的实现过程

STM32中的位带(bit-band)操作

位带别名区的字只有 LSB 有意义。另外,在访问位带别名区时,不管使用哪一种长度的数据传送指令(字/....
的头像 21ic电子网 发表于 05-13 09:28 240次阅读
STM32中的位带(bit-band)操作

AD9910的STM32驱动及中文数据手册资料下载

AD9910的STM32驱动,以及中文数据手册,资料很不错,没有FPGA相关驱动。
发表于 05-11 10:16 23次阅读
AD9910的STM32驱动及中文数据手册资料下载

STM32单片机的串口通信波特率计算方法

不管是什么单片机,在使用串口通信的时候,有一个非常重要的参数:波特率。什么是波特率:波特率就是每秒传....
的头像 玩转单片机 发表于 05-10 11:49 648次阅读
STM32单片机的串口通信波特率计算方法

全球MCU市场1/5归ST,中国CAGR达27%

【导读】ST通用STM32 MCU斩获全球1/5市场份额,中国市场2017年MCU出货量排名第二,连....
的头像 主编专栏 发表于 05-10 11:10 590次阅读
全球MCU市场1/5归ST,中国CAGR达27%

STM32之RS485通讯方式实现

在设计中,我们经常使用一个名为Max485的芯片来完成TTL电平至差分电平的转换,这款芯片有一个DE....
发表于 05-10 06:31 207次阅读
STM32之RS485通讯方式实现

FreeRTOS在STM32上的移植笔记

将嵌入式开发领域著名的开源嵌入式RTOS --- FreeRTOS 一直到STM32 芯片上运行的移....
发表于 05-09 09:56 42次阅读
FreeRTOS在STM32上的移植笔记

STM32F407V芯片断电的时候FLASH被异常改写的解决方案

到此,我们一方面请芯片设计人员做进一步确认,看看芯片是否真的坏了。同时,我们抱着怀疑一切的态度,请客....
的头像 21ic电子网 发表于 05-09 09:13 713次阅读
STM32F407V芯片断电的时候FLASH被异常改写的解决方案

STM32如何通过 printf 打印出浮点数

这是由于 IAR 默认选择的 printf 库不支持浮点数的的输出。可在设置选项中修改。如下:默认使....
发表于 05-07 16:47 79次阅读
STM32如何通过 printf 打印出浮点数

STM32 C8T6 kile5工程模板资料下载

STM32 C8T6 kile5工程模板
发表于 05-07 14:45 49次阅读
STM32 C8T6 kile5工程模板资料下载

ST公司STM32F334x4/6/8系列MCU开发方案

ST公司的stm32F334x4/6/8系列MCU是基于高性能ARM 32位CortexR-M4 R....
发表于 05-05 14:07 167次阅读
ST公司STM32F334x4/6/8系列MCU开发方案

基于STM32的无刷直流电机的相关驱动控制方法设计研究

最近在调试基于STM32的无刷直流电机的相关驱动控制方法,现在已经调试完毕基于磁链定向控制的相关研究....
发表于 05-04 17:01 93次阅读
基于STM32的无刷直流电机的相关驱动控制方法设计研究

STM32之 IP ICMP ETHERNET的实现

嵌入式以太网开发是一个很有挑战性的工作。通过几个月的学习,个人觉得大致有两条途径。第一条途径,通过高....
发表于 05-03 12:13 92次阅读
STM32之 IP ICMP ETHERNET的实现

浅谈STM32的FSMC的TFT笔记

FSMC _Bank 用来选择外接存储器的地址,FSMC所控制的外存储器所映射的地址是0x6000 ....
发表于 05-03 11:58 117次阅读
浅谈STM32的FSMC的TFT笔记

详解stm32的CAN控制器(程序分享)

首先简单介绍一下CAN总线,关于CAN总线是谁发明的,CAN总线的历史,CAN总线的发展,CAN总线....
发表于 05-01 10:44 248次阅读
详解stm32的CAN控制器(程序分享)

基于STM32定时器的红外遥控数据接收设计原理

定时器就是按照一个特定的频率对计数值进行加一或减一操作,当数值溢出时则产生一个标志或中断。 定时器....
发表于 04-30 17:52 208次阅读
基于STM32定时器的红外遥控数据接收设计原理

STM32开发板实验箱8位独立按键测试学习

1、畅学STM32核心板2、 配套STM32主芯片 F103C8T6STM32F103C8T6芯片基....
的头像 畅学单片机 发表于 04-30 15:21 483次阅读
STM32开发板实验箱8位独立按键测试学习

一文解析STM32内存管理和堆栈的认知与理解

本文主要介绍了STM32内存管理和堆栈的认知与理解,首先介绍的是内存管理的实现原理及分配、释放原理,....
的头像 陈翠 发表于 04-26 16:22 806次阅读
一文解析STM32内存管理和堆栈的认知与理解

基于stm32的AD多通道轮循采集程序下载

这是基于stm32的AD多通道轮循采集程序,用12864显示,包含了18b20读写程序,有兴趣的朋友....
发表于 04-26 16:04 48次阅读
基于stm32的AD多通道轮循采集程序下载

关于stm32跑马灯的程序

stm32的寄存器比较多,难于记忆,所以官方封装了两套库函数。一个是标准库,不过在F7上官方没有更....
发表于 04-26 11:08 336次阅读
关于stm32跑马灯的程序

STM32程序之MAX6675热电偶温度读取

用HAL很简单,CS拉低以后,一个SPI读两个字节进来,然后就是凑成12位,换算。 MAX6675....
发表于 04-26 11:04 168次阅读
STM32程序之MAX6675热电偶温度读取

MDK将数据存储到FLASH指定地址

学习 STM32 也会遇到这样的 绝对定位 的问题如下: uint8_t UART_RX_BUF[1....
发表于 04-26 11:02 101次阅读
MDK将数据存储到FLASH指定地址

STM32开发设计中FSMC可能遇到问题应对方案

为了使 HADDR 的字节地址信号线与存储器匹配,FSMC 的 25 条地址信号线FSMC_A[24....
的头像 MCU开发加油站 发表于 04-26 09:23 1257次阅读
STM32开发设计中FSMC可能遇到问题应对方案

STM32F4 C++ 封装库 之 EXTI

mbed 框架是为物联网设备开发的,工业控制级别的产品可以考虑用 RTE 框架。RTE 框架目前驱动....
发表于 04-24 18:10 92次阅读
STM32F4 C++ 封装库 之 EXTI
鸿运国际手机版