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

eefocus · 电子工程世界·2021-02-28 00:00

1.2k

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


3.1顶层程序设计

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


3.2系统初始化程序设计

3.2.1 GPIO初始化


在第二章的主控模块部分已经介绍了GPIO的寄存器和引脚的输入输出模式,对复用功能实现也做出了详细说明。在STM32控制下的LED,KEY的GPIO以及LCD,SD card,摄像头使用的所有GPIO或特殊功能引脚的设置都要通过流程图来实现(图3.2)。


3.2.2 LCD初始化


LCD初始化主要包括两个内容:FSMC总线配置,LCD寄存器配置,见图3.3。程序中的涉及液晶屏的读写操作(如清屏,设置液晶扫描方向以及写入图片信息),都是在向Bank1_LCD_C和Bank1_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 照相机系统 软件设计 编辑:什么鱼 引用地址: //news.eeworld.com.cn/mcu/ic527805.html

广告

eefocus · 电子工程世界·2021-02-28 00:00

1.2k
  • STM32
  • SD卡
  • 用户热评
    打开摩尔芯球APP,查看更多评论

    重大事件及时推送,更流畅的沉浸式阅读体验

    参与评论

    0/200字

    登录后即可发布评论

    发布评论
    相关新闻

    开关电源浪涌电流上升的原因

    开关电源浪涌电流上升的原因-限制输入浪涌电流的传统方法是使用一系列负温度系数热电流限制电阻(NTC),但是这种简单的方法有很多缺点:例如,环境温度和电流会极大地影响NTC电阻的限制电流效果,在电网输入中断后,限流效果只有部分达到,NTC的电阻器的功率损耗降低了工作效率……实际上,上述两个问题可以通过“软启动电路”来解决,下面将对此进行详细讨论。

    来源:电子发烧友 · 昨天

    1.2k人阅读

    英诺达与Cadence签署独家EDA硬件云平台服务供应商

    英诺达与Cadence签署独家EDA硬件云平台服务供应商协议-此次英诺达与Cadence的合作,将把全球领先的系统验证技术通过云平台服务的方式带给一系列更广泛且适用的中国客户。

    来源:电子发烧友 · 昨天

    891人阅读

    手持糖度计的应用范围有哪些

    手持糖度计的应用范围有哪些-托普云农手持糖度计又称为手持糖度仪,手持糖度计采用数字LCD显示,适用于几乎任何果汁、食品与饮料等液体的测量,手持糖度计测量范围为0-65%,可在3秒之内显示结果。

    来源:电子发烧友 · 昨天

    769人阅读

    智能电力运维对于智慧城市的发展意义是什么

    智能电力运维对于智慧城市的发展意义是什么-智能电网离不开智能电力运维系统,智能电力运维系统对于智慧城市的发展有什么意义呢? 智慧城市涉及到智能楼宇、智能家居、路网监控、智能电网、智能医院、城市生命线管理、食品药品管理、票证管理、家庭护理、个人健康与数字生活等诸多领域。其中,智能电网是未来智慧城市的“大动脉”,智能电网结合最新通信信息技术为城市提供便捷高效智的服务,实现低碳绿色的生活,开创创新科技的未来。 智能电网将先进的传感测量技术、网络技术

    来源:电子发烧友 · 昨天

    906人阅读

    上海爱思尔教育科技有限公司

    Copyright©2021 沪ICP备19045314号-3

    沪公网安备 31011502017229号

    请使用浏览器自带的分享按钮,
    将你这篇文章分享出去吧。
    +86
    获取验证码
    登 录

    邮箱登录

    未注册过的用户将直接为你创建摩尔账号