stm32驱动ov7670 数据转BMP格式再转JPEG存储

本文介绍了如何使用STM32驱动OV7670摄像头,并将原始BMP数据转换为JPEG格式进行存储,以减小文件大小。通过设置时钟、行和帧输出时序,实现数据读取。最后,展示了从摄像头读取数据、转换并存储到Flash的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.搞了几天摄像头终于搞出来了一点成果,本打算用BMP格式保存读出的数据但是数据太大达到225k,后来又将BMP数据转成JPEG格式就小了很多,jpeg是有损压缩图片会变得不那么清晰。

搞出来的成果:

 

二.摄像头小知识:XCLK是输入摄像头的时钟,看别的原理图接的是一个12M的晶振,初始化的时候4倍频达到48M,这里没有接,用PA8输出8M内部6倍频达到48M,PCLK是摄像头输出的时钟达到12M,图像输出的是QVGA,RGB565格式,用的是VGA时序,一个像素需要2个pclk.

行输出时序图:

HREF是一个行信号,这个信号和mcu的一个引脚连接在SN74LVC1G00D(与非门)上,和mcu一块控制fifo,当准备写fifo时,mcu发送高电平,这时fifo并没有被使能,只有当HREF产生高电平信号时,在PCLK的配合下将数据写到fifo中。

帧输出时序图:

VSYNC是帧同步信号,当摄像头采集到一帧数据,会发出帧同步信号,用外部中断捕获这个帧中断信号。

void EXTI4_IRQHandler(void)
{         
    if(EXTI_GetITStatus(EXTI_Line4)==SET)    //是4线的中断
    {   if(OV7670_CS == 0) 
        {       
                if(ov_sta == 0)
                {            
                    OV7670_WRST=0;    //复位写指针                   
                    OV7670_WRST=1;    
                    OV7670_WREN=1; &nbs

评论 43
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值