Stm32旧版库函数6——ov2640 串口显示图像 串口中断 使用旧版库 模拟IIC

news2024/12/23 22:57:35

 

 

/*******************************************************************************
//
// 使用单片机STM32F100C8T6     8
// 晶振:8.00M
// 编译环境 Keil uVision4
// 在3.3V的供电环境下,就能运行
// 波特率 115200
// 使用:STM32F100C8T6串口1连接电脑

*******************************************************************************/
#include "stm32f10x_lib.h"
#include "usart.h"
#include "delay.h"
#include "sys_config.h"
#include "dcmi_ov2640.h"

#define   uchar unsigned char
#define   uint unsigned int    

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

  /*
********************************************************************************
** 函数名称 : main(void)
** 函数功能 : 主函数
** 输    入    : 无
** 输    出    : 无
** 返    回    : 无
********************************************************************************
*/
int main(void)
{
    u16 i = 0;        

    RCC_Configuration();         //配置RCC
    USART1_Configuration();     //配置串口1
    Delay_Init(72);
    OV2640_HW_Init();                    //IIC初始化
    OV2640_ReadID(&OV2640_Camera_ID);    //读取OV2640ID,测试硬件,依次为:0x7F,0xA2,0x26,0x42
    OV2640_JPEGConfig(JPEG_160x120);    //配置OV2640输出320*240像素的JPG图片

    OV2640_BrightnessConfig(0x20);
    OV2640_AutoExposure(2);

    OV2640_CaptureGpioInit();                //数据采集引脚初始化
    EXTI->IMR &= ~EXTI_Line8;                //关闭场同步中断
    EXTI->EMR &= ~EXTI_Line8;    
    
    EXTI->IMR &= ~EXTI_Line12;                //关闭像素同步中断
    EXTI->EMR &= ~EXTI_Line12;    
    
    Delay_nMS(10);                            //等待图像输出稳定
    EXTI->IMR |= EXTI_Line8;                //使能场同步中断,准备下次采集
    EXTI->EMR |= EXTI_Line8;
        
    while(1)
    {
        if(VsyncActive == 2)
        {
            //封帧格式为:0xAA CMD 0x55
            if(get_flag_usart()==1)            
            {    
              while(JpegBuffer[JpegDataCnt]==0)     //将后边的无用的0去掉
                JpegDataCnt--;
              if(JpegBuffer[0]==0xff && JpegBuffer[1]==0xd8 && JpegBuffer[JpegDataCnt-1]==0xff && JpegBuffer[JpegDataCnt]==0xd9)
              {
                JpegDataCnt++;              
                for(i = 0; i < JpegDataCnt; i ++)
                  USART1_SendData(JpegBuffer[i]);
                set_flag_usart(0);               
              }            
            }
            JpegDataCnt++;
            for(i=0;i < JpegDataCnt; i ++) //手动清除大数组
                  JpegBuffer[i]=0;
            //else Delay_nMS(50);    
            JpegDataCnt = 0;                        //JPEG计数器清零
            
            EXTI->IMR |= EXTI_Line8;                //使能场同步中断,准备下次采集
            EXTI->EMR |= EXTI_Line8;            
            //VsyncCnt = 0;                //开始下一帧数据采集                
        }
 
    }   
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/83587.html

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

相关文章

SpringCloud Config 分布式配置中心

分步式系统面临配置问题&#xff1a; 微服务意味着要将单体应用中的业务拆分成一个个子服务&#xff0c;每个服务的粒度相对较小&#xff0c;因此系统中会出现大量的服务。由于每个服务都需要必要的配置信息才能运行&#xff0c;所以一套集中式的、动态的配置管理设施是必不…

浅谈电气火灾监控系统在煤矿高层公寓中的应用分析

摘要&#xff1a; 煤矿高层公寓做为人员高度密集场所&#xff0c;使用的电器种类繁多&#xff0c;一旦发生电气火灾事故&#xff0c; 其严重性和危害性远高于其它场所。文章通过对煤矿公寓电气线路火灾主要形式的分析&#xff0c;对电气火灾监 控系统在煤矿公寓电气火灾预防及…

NLG解码策略

NLG解码策略 自然语言生成&#xff08;Natural Language Generation&#xff0c;简称NLG&#xff09;&#xff0c;是自然语言处理领域的一个重要分支&#xff0c;在文本摘要生成任务中&#xff0c;另一个重要的分支是自然语言理解&#xff08;Natural Language Understanding&…

传奇GOM引擎版本架设

传奇GOM引擎版本架设 传奇GOM引擎版本我们架设游戏需要用到的工具&#xff1a; 版本&#xff08;游戏类型服务端&#xff09;、DBC2000&#xff08;游戏数据库&#xff09;、RAR&#xff08;解压工具&#xff09;、传奇客户端、服务器、网盘 先把这些架设工具准备好&#xff…

性能测试——

目录 测试的分类 性能测试的指标 性能测试需求分析 ​编辑 性能测试计划及方案 ​编辑​编辑 测试用例设计及执行 梳理系统架构 压力测试报告 测试的分类 性能测试的指标 性能测试需求分析 性能测试计划及方案 测试用例设计及执行 估算系统的qps要了解什么&#xff1a; 系…

Hot100-最小路径和

1 前言 1.1 题目描述 给定一个包含非负整数的 m x n 网格 grid &#xff0c;请找出一条从左上角到右下角的路径&#xff0c;使得路径上的数字总和为最小。 说明&#xff1a;每次只能向下或者向右移动一步。 如下图所示&#xff1a; 输入&#xff1a;grid [[1,3,1],[1,5,1…

ConversionService转换服务使用

前言 在最近分析和写的SpringBoot源码分析(面试官&#xff1a;你说说Springboot的启动过程吧(5万字分析启动过程))中&#xff0c;给自己留了一个关于ConversionService的使用的作业&#xff0c;这不就来补作业了。 使用出处 这个转换服务我这里的例子很简单&#xff0c;就是…

计算机研究生就业方向之去大厂做架构师

我一直跟学生们说你考计算机的研究生之前一定要想好你想干什么&#xff0c;如果你只是转码&#xff0c;那么你不一定要考研&#xff0c;至少以下几个职位研究生是没有啥优势的&#xff1a; 1&#xff0c;软件测试工程师&#xff08;培训一下就行&#xff09; 2&#xff0c;前…

RocketMQ详解及开发用例

概念 Apache RocketMQ作为阿里开源的一款高性能、高吞吐量的分布式消息中间件。 支持Broker和Consumer端消息过滤&#xff0c;支持发布订阅模型和点对点&#xff0c;支持拉pull和推push两种消息模式&#xff0c;单一队列百万消息、亿级消息堆积&#xff0c;支持单master节点&a…

力扣202.快乐数(java语言HashSet方法,类双指针方法)

前言&#xff1a;此题被分类到散列表算法题目中&#xff0c;但乍一看此题实在想不到如何去使用散列表&#xff0c;直到看了官方给的答案。。。。。。 题目描述&#xff1a; 编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」 定义为&#xff1a; 对于一个正整数&#…

C++ 基本语法

&#x1f4d2;博客主页&#xff1a; ​​开心档博客主页​​ &#x1f389;欢迎关注&#x1f50e;点赞&#x1f44d;收藏⭐留言&#x1f4dd; &#x1f4cc;本文由开心档原创&#xff01; &#x1f4c6;51CTO首发时间&#xff1a;&#x1f334;2022年12月12日&#x1f334; ✉…

Python40个自动化办公实战案例,终于实现下班自由啦~

拿来就能用&#xff0c;这么爽的吗&#xff1f;&#xff01; 今天我想聊聊&#xff0c;如何通过Python自动化工具&#xff0c;解决工作中常见的办公效率低下的问题。 你有没有想过&#xff0c;下班晚&#xff0c;加班&#xff0c;可能是因为自己工作比较低效&#xff1f; 回…

wireshark 分析理解DHCP流程

DHCP概念&#xff1a; 动态主机配置协议 DHCP&#xff08;Dynamic Host Configuration Protocol&#xff0c;动态主机配置协议&#xff09;&#xff0c;是一个应用层协议。该协议允许服务器向客户端动态分配 IP 地址和配置信息。 知识补充&#xff1a; BOOTP&#xff08;Boots…

PVE使用cloud-init快速启动虚拟机

这里写目录标题关于cloud-init云镜像&#xff08;cloud image&#xff09;下载创建虚拟机模板&#xff0c;可反复使用DebianUbuntuCentOS使用模板关于cloud-init 传统ISO镜像装机时&#xff0c;需要一步一步规定虚拟机&#xff0c;比如系统盘安装在哪个磁盘里&#xff0c;ip是…

Vue Material - 基于谷歌 Material Design 打造的前端组件库,用 Vue 开发海外应用的绝佳选择

一位朋友问我用 vue 开发 APP 在谷歌商店上架&#xff0c;有什么简单的 UI 组件库&#xff0c;我推荐了这款&#xff0c;同样推荐给各位。 关于 Vue Material Vue Material 是一款简单、轻量级的 Vue 组件&#xff0c;组件的设计完全按照 Google Material Design 规范构建&am…

氟尿嘧啶/琥珀酰化壳聚糖偶联载药体(SUCS-5-FuOH)

氟尿嘧啶/琥珀酰化壳聚糖偶联载药体(SUCS-5-FuOH) 产品描述&#xff1a;以自制的琥珀酰化壳聚糖 (SUCS)和羟甲基-5-氟尿嘧啶(5-FuOH)为原料,制备了壳聚糖偶联载药体(SUCS-5-FuOH).结果表明,SUCS和5-FuOH间通过酯键化学键合,接枝率(载药率)为18.7%,在模拟体液和酶存在条件下均有…

Redis高可用全景一览

前言 前几天我在知乎看到一个问题&#xff1a;如何建立自己的知识体系和观点&#xff1f;[1] 在一篇高赞回答中讲述了建立“外脑”是关键&#xff0c;文章观点认为&#xff1a;大脑是用来思考的&#xff0c;不是用来记忆的。 我很认同这样的看法&#xff0c;我的账号名为“杨同…

电脑怎么滚动截图的方法

电脑截图常见的有矩形截图、任意形状截图、全屏幕截图、窗口截图等等&#xff0c;那你知道怎么在电脑上滚动截图吗&#xff1f;有时候可能会需要用到滚动截长图&#xff0c;但是很多 用户都不清楚怎么操作&#xff0c;下面小编就来教教大家电脑怎么滚动截图的方法&#xff08;除…

云存储--2

那么&#xff0c;根据我们上一版块的延续&#xff0c;我们来讲讲实际在linux中需要如何进行存储方面的一个操作吧。 那么我使用的是RHEL9.1 红帽作为在linux领域具有绝对的话语权和强大的市场&#xff0c;所以使用该系统还是有点原因哒~ 那么可能会有同学有疑问&#xff1a;欸&…

多目标遗传算法NSGAII求解环境经济调度(Python代码实现)

目录 1 电力系统环境经济调度数学模型 2 算例——IEEE10节点 2.1 数据​ 2.2 Python代码学习 3 一点拓展知识 1 电力系统环境经济调度数学模型 2 算例——IEEE10节点 2.1 数据 我弄成一个表格&#xff0c;方便编程读写&#xff1a; 2.2 Python代码学习 多目标遗传算法N…