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

 

/*******************************************************************************
//
// 使用单片机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;                //开始下一帧数据采集                
        }
 
    }   
}

完整资料下载:

Stm32旧版库函数6-10合集-单片机文档类资源-CSDN下载

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fengyuzhe13

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值