Stm32标准库函数5——摄像头OV2640 F103C8T6 串口显示高分辨率图像640x480 1024x768 1024x1024 1600x1200 二百万像素

news/2024/12/2 20:49:23/

   stm32f103c8t6串口发送 OV2640的图像,分辨率可选。网络上资料大部分是低分辨率的,这个可以做高分辨率

 

 完整工程打包,包含VB串口显示界面:

Stm32标准库函数5-OV2640PA0-7F103C8T64500000联合VB高分辨率资源-单片机文档类资源-CSDN下载

用串口传送图像数据,串口波特率为4500000(ch340达不到这么高的波特率,pl2303可以,但稳定性要差些。也可以自行设置成其他波特率,降低帧率),调试时,先设定为低分辨率,看联线是否正常。如果VB界面不显示,可以用串口助手,向stm32发送任意一字节任意数据,查看返回数据是否是图像(jpg格式为压缩格式,其有对应的信息头和信息尾标志)。

//14fps: JPEG_160x120 JPEG_176x144 JPEG_320x240  JPEG_352x288
    //7.5fps: JPEG_640x480 JPEG_800x600
    //1.5fps: JPEG_1024x768  JPEG_1024x1024 JPEG_1280x1024 JPEG_1600x1200

//串口发送一字节任意数据,返回一幅图像
#include "stm32f10x.h"
#include <stdio.h>
#include "Delay/Delay.h"
#include "USART/USART.h"
#include "OV2640/dcmi_ov2640.h"
#include "../BMP/BMP.h"
#include "timer.h"
#include "stm32f10x_tim.h"

extern unsigned char VsyncCnt;            //场同步标志    

extern u32 JpegDataCnt;
//extern u8 JpegBuffer[10240];
extern u8 VsyncActive;
OV2640_IDTypeDef OV2640_Camera_ID;

//定时器3中断服务程序
void TIM3_IRQHandler(void)   //TIM3中断
{
    if (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET)  //检查TIM3更新中断发生与否
    {
        TIM_ClearITPendingBit(TIM3, TIM_IT_Update  );  //清除TIMx更新中断标志
        USART1_Transmit('Q');
    }
}

int main(void)
{
//    u16 i = 0;
        
    Delay_Init(72);
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
    GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable , ENABLE);//使能PB3与PB4
    USART1_Init(4500000);    //在与VB通讯时可以选用 115200  4500000
    NVIC_usart();

//  USART_SendString("uart init ok!\r\n");

    OV2640_HW_Init();                    //IIC初始化
//    memset(&OV2640_Camera_ID,0x0,sizeof(OV2640_IDTypeDef));
//    USART_SendString("uart IIC ok!\r\n");
    OV2640_ReadID(&OV2640_Camera_ID);    //读取OV2640ID,测试硬件,依次为:0x7F,0xA2,0x26,0x42
    //14fps: JPEG_160x120 JPEG_176x144 JPEG_320x240  JPEG_352x288
    //7.5fps: JPEG_640x480 JPEG_800x600
    //1.5fps: JPEG_1024x768  JPEG_1024x1024 JPEG_1280x1024 JPEG_1600x1200
    OV2640_JPEGConfig(JPEG_1024x768);    
    //设置自动曝光和白平衡
    OV2640_BrightnessConfig(0x20);
    OV2640_AutoExposure(2);

    OV2640_CaptureGpioInit();                //数据采集引脚初始化
    EXTI->IMR &= ~EXTI_Line3;                //关闭场同步中断
    EXTI->EMR &= ~EXTI_Line3;    
    
    EXTI->IMR &= ~EXTI_Line4;                //关闭像素同步中断
    EXTI->EMR &= ~EXTI_Line4;    
    
    Delay_nMS(10);                            //等待图像输出稳定
    EXTI->IMR |= EXTI_Line3;                //使能场同步中断,准备下次采集
    EXTI->EMR |= EXTI_Line3;
            
    while(1)
    {
        if(VsyncActive == 2)
        {
            //封帧格式为:0xAA CMD 0x55
            if(get_flag_usart()==1)            
            {    
//                TIM3_Int_Init(49999,7199);//10Khz的计数频率,计数到50000为5000ms
                set_flag_usart(0);
                
                EXTI->IMR |= EXTI_Line3;                //使能场同步中断,准备下次采集
                EXTI->EMR |= EXTI_Line3;            
                //VsyncCnt = 0;                //开始下一帧数据采集                
            }
        
        }
    }
}


http://www.ppmy.cn/news/272665.html

相关文章

Ubuntu12.04新增屏幕分辨率

有时ubuntu汇总没有我们需要的分辨率,这时需要自己新增,很简单,4个步骤即可完成,下面结合新增1600x1200例子来介绍如何新增分辨率: 使用两个工具&#xff1a; xrandr 和 cvt 1.终端输入 cvt 1600 1200 60 (60为分辨率) 这时终端会出现一串参数,先甭管它,后面会用到. 2.将上…

数字图像处理基本知识

1、数字图像&#xff1a; 数字图像&#xff0c;又称为数码图像或数位图像&#xff0c;是二维图像用有限数字数值像素的表示。数字图像是由模拟图像数字化得到的、以像素为基本元素的、可以用数字计算机或数字电路存储和处理的图像。 2、数字图像处理包括内容&#xff1a; 图像…

Effective第三版 中英 | 第二章 创建和销毁对象 | 固定资源首选使用依赖注入

文章目录 Effective第三版前言第二章 创建和销毁对象固定资源首选使用依赖注入 Effective第三版 前言 大家好&#xff0c;这里是 Rocky 编程日记 &#xff0c;喜欢后端架构及中间件源码&#xff0c;目前正在阅读 effective-java 书籍。同时也把自己学习该书时的笔记&#xff0…

C#,码海拾贝(37)——求解“托伯利兹方程组“的“列文逊方法“之C#源代码

using System; namespace Zhou.CSharp.Algorithm { /// <summary> /// 求解线性方程组的类 LEquations /// 原作 周长发 /// 改编 深度混淆 /// </summary> public static partial class LEquations { /// <summary> /…

Servlet 详解

目录 什么是 servlet? Servlet 是做甚的? 如何编写一个 Servlet 程序? 解析访问出错情况 Servlet 的运行原理 1. 接收请求 2. 根据请求计算响应 3. 返回响应 Servlet API 详解 HTTPServlet HttpServletRequset HttpServletResponse 什么是 servlet? Servlet 是…

奇虎360 php t5级别,奇虎360凭什么估值3800亿?核心价值只是他而已!

最近360在国内上市的各种消息不断的流出&#xff0c;作为中国互联网领域重要的力量&#xff0c;360曾经在美国纳斯达克短暂上市。但是因为美国人民对360的业务部太认可&#xff0c;加上周鸿祎忽悠美国人不给力&#xff0c;导致360市值低的难以启齿。面临这个局面&#xff0c;36…

Glint360K | 使用指南

首先恭喜格林深瞳3月18日在科创板成功上市 一、介绍 Glint360K数据集包含36万类别的1800万张图像&#xff0c;不论是类别数还是图像数&#xff0c;相比MS1MV2数据集都有大幅提升。 这是一个号称全球最大最干净的人脸数据集&#xff0c; 下载地址&#xff08;我自己上传的&…

停车还能360全方位影像_2020款新途锐锐享版上市,智能泊车360全景影像加量不加价...

前一阵子和大家说过20款途锐即将上市并会有很多新的升级项目&#xff0c;而最近20款途锐3.0锐享版已经开始打响头炮&#xff0c;官方报价71.8W&#xff0c;比3.0锐锋版价位略高&#xff0c;比百万纪念版相差5W&#xff0c;高配锐智版相差10W左右。 今天我们就来看看这款新车途锐…