Stm32标准库函数5——OV2640 PA0-7 F103C8T6 4500000 联合VB 高分辨率

news2024/11/21 2:28:04

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

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

https://download.csdn.net/download/fengyuzhe13/87327054icon-default.png?t=M85Bhttps://download.csdn.net/download/fengyuzhe13/87327054

//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.coloradmin.cn/o/106250.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【经典问题:HanoiTower(汉诺塔)】

&#x1f381;HanoiTower&#x1f385;HanoiTower问题描述&#x1f385;&#x1f385;模拟推导&#x1f385;&#x1f385;&#x1f385;问题的两种形式&#x1f384;求解移动总次数&#x1f384;&#x1f384;打印详细的移动过程&#x1f385;HanoiTower问题描述 汉诺塔问题&a…

基于HMM模型实现中文分词

任务描述:在理解中文文本的语义时需要进行分词处理,分词算法包括字符串匹配算法,基于统计的机器学习算法两大类。本案例在前文将说明常用分词库及其简单应用,之后会通过中文分词的例子介绍和实现一个基于统计的中文分词方法——HMM模型,该模型能很好地处理歧义和未登录词问…

[含文档+源码等]基于SSM实现的宿舍公共财产管理系统|寝室

博主介绍&#xff1a;✌在职Java研发工程师、专注于程序设计、源码分享、技术交流、专注于Java技术领域和毕业设计✌ 项目名称 [含文档源码等]基于SSM实现的宿舍公共财产管理系统|寝室 演示视频 [含文档源码等]基于SSM实现的宿舍公共财产管理系统|寝室_哔哩哔哩_bilibili 系统介…

经济低迷形势下,如何降低软件开发成本?

1、选对开发方法 过程决定结果。方法错了&#xff0c;再有经验的人&#xff0c;结果也不会好。例如&#xff0c;软件开发方法从70年代的瀑布&#xff0c;一步步从迭代、快速原型等进化到现在的敏捷、规模化敏捷、DevOps等。统计数字显示&#xff0c;使用敏捷方法&#xff0c;平…

Excel中实现时间相减,得到间隔时间(年月日时分秒)

一、年月日之差 表中有开始日期和结束日期&#xff0c;我们在D3单元格中输入“C3-B3” 于是&#xff0c;得到下面的结果 很显然&#xff0c;结果并不是我们想要的。说明这种方法不行&#xff0c;为了得到两个日期之间的时间间隔&#xff0c;需要用到DATEDIF函数。先来说下DATED…

我国融资性担保行业整体呈减量提质趋势 国家“出手”解决行业痛点

根据观研报告网发布的《中国融资性担保行业发展趋势分析与投资前景预测报告&#xff08;2022-2029年&#xff09;》显示&#xff0c;融资性担保行业是指担保人与银行业金融机构等债权人约定&#xff0c;当被担保人不履行对债权人负有的融资性债务时&#xff0c;由担保人依法承担…

Go:使用 go-micro 构建微服务(一)

一、微服务 什么是微服务&#xff08;microservice&#xff09;&#xff1f;这是企业界正在向计算界提出的问题。一个产品的可持续性取决于它的可修改程度。 大型产品如果不能正常维护&#xff0c;就需要在某个时间点停机维护。而微服务架构用细化的服务取代了传统的单体服务…

语音识别芯片LD3320介绍再续

语音识别芯片LD3320驱动程序 1、芯片复位 复位就是对LD3320芯片的第47腿&#xff08;RSTB*&#xff09;发送低电平&#xff0c;然后需要对片选CS做一次拉低→拉 高的操作&#xff0c;以激活内部DSP。按照以下顺序&#xff1a; void LD_reset() { RSTB1;delay(1);RSTB0;delay…

TencentOS 3.1下安装zabbix 5.0.30

TencentOS是使用官方镜像文件安装的虚拟机。 虚拟机为virtualBox 6.1 zabbix 使用zabbix官方安装包编译安装。 下载地址: Download Zabbix sources zabbix软件包解包,本次安装解包在/opt下 zabbix需要nginx、php、mysql等软件支持,因此先安装它们。 安装mysql如下: yu…

Usaco Training刷怪旅 第二层第二题:Transformations

usaco training 关注我持续更新usaco training A square pattern of size N x N (1 < N < 10) black and white square tiles is transformed into another square pattern. Write a program that will recognize the minimum transformation that has been applied to t…

QCon直击|闲鱼推荐大规模应用背后的工程实践

讲师介绍闲鱼技术部 | 吴白万小勇&#xff08;吴白&#xff09;&#xff0c;闲鱼服务端专家。毕业于南京大学计算机系&#xff0c;目前负责闲鱼技术推荐架构。推荐在闲鱼的应用不同于搜索的确定性&#xff0c;推荐场景面临的问题往往是不确定的。但是正是因为这种不确定&#x…

Kafka无法对外暴露端口的相关解决方案

1、kafka开放外部访问 1.1、修改kafka configMap 修改内容如下 # 修改EXTERNAL_ACCESS_IP变量&#xff0c;值为真实的外网IP export EXTERNAL_ACCESS_IP${真实的外网IP} 1.2、重启kafka # 重启kafka kubectl rollout restart statefulset kafka -n default # 查看kafka状态 k…

盛邦安全将于12月27日上会,2022年前三季度收入1亿元

12月20日&#xff0c;上海证券交易所披露的科创板上市委2022年第112次审议会议公告显示&#xff0c;远江盛邦&#xff08;北京&#xff09;网络安全科技股份有限公司&#xff08;下称“盛邦安全”&#xff09;将于2022年12月27日上会。 目前&#xff0c;盛邦安全已经提交了招股…

在tushare量化平台可以获取哪些数据?

沪深股票数据是Tushare量化最传统、最具历史意义的数据服务项目从一开始就为投资者特别是定量投资者提供了稳定、方便的接口。 1.基础数据 提供交易和回测所需要的基础信息&#xff0c;目前主要提供的是上市公司股票列表和交易日历等 2.行情数据 行情数据目前还在继续规则和…

“史上最贵”卡塔尔世界杯,有哪些炫酷的“黑科技”?

2022年卡塔尔世界杯投入超过2200亿美元&#xff0c;堪称“史上最贵世界杯”。这些投入不仅用在了场馆、道路等基础设施建设中&#xff0c;也体现在让人震撼的芯片传感器、人工智能、先进技术等“黑科技”上。今年的卡塔尔世界杯有什么“科技感十足”的先进技术&#xff1f;让我…

坐标系相关整理

参考url:https://www.jianshu.com/p/06890af3d780 Dicom坐标系 x轴&#xff1a;从右手到左手 y轴&#xff1a;从前胸到后背 z轴&#xff1a;从脚到头 解刨学坐标系 医学人体三解剖面&#xff0c;医疗影像三维图&#xff0c;主要是针对人体来说。解剖学上的坐标体系&#xff0…

常见垃圾回收器

1.Serial垃圾回收器 Serial&#xff08;串行&#xff09;收集器是最基本、历史最悠久的垃圾收集器了&#xff0c;是一个单线程收集器 它只会使用一个垃圾收集线程去完成垃圾收集工作 它在进行垃圾收集工作的时候必须暂停其他所有的工作线程&#xff08; "Stop The Worl…

C++——STL之vector详解

C——STL之vector详解&#x1f3d0;1.什么是vector&#x1f3d0;2.vector的使用&#x1f3c0;2.1vector的实例化&#x1f3c0;2.2访问遍历vector⚽2.2.1**下标[]**⚽2.2.2**迭代器**⚽2.2.3**范围for**&#x1f3c0;2.3.vector容量问题⚽2.3.1size和capacity⚽2.3.2reserve和re…

二叉树先、中、后遍历递归+非递归

文章目录前言思路设计思想非递归前序遍历的思路非递归中序遍历的思路非递归后序遍历的思路层序遍历的思路完整代码MyBinaryTree.hMyBinaryTree.cppMain.cpp效果展示前言 作者水平有限&#xff0c;全部的代码是学习前人部分原创不要搬代码&#xff0c;一定要借鉴学习&#xff0…

接口测试的痛点和解决办法

在做接口测试时&#xff0c;以下几个测试痛点&#xff0c;一定要仔细琢磨下&#xff1a; 痛点①&#xff1a;由于测试环境数据被改动&#xff0c;导致接口测试失败 这个问题&#xff0c;最好的办法就是重新调用数据库中的最新数据。在做测试用例时&#xff0c;也要考虑到实时调…