查看: 3530|回复: 0

[原创] 野火i.MX RT1052 MINI试用-8 整合OV5640图像显示

[复制链接]
  • TA的每日心情
    开心
    2019-6-20 14:08
  • 签到天数: 43 天

    连续签到: 1 天

    [LV.5]常住居民I

    发表于 2018-7-24 14:40:30 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 mabo124 于 2018-7-24 14:43 编辑

          上周一直在尝试将LCD显示的ov5640采集的图像信息整合到上一个Fatfs实验里,之前均是以野火的例子来尝试,还是老样子:失败(目前市面上有3家作1052,其中开源资料的是野火和原子,但这2家的1052解决方案,还不太一样,所以相互比较学起来,真的费点事。另外,她们的同步教程更新的较慢,只能靠自己慢慢磨各种代码了)。没办法,只能再次以原子的示例程序搞起,辅助以野火的代码,总算搞定了,但是还有bug:无法以bmp格式保存,这个将在下一次实验解决。现将上周工作总结如下。
        1. 系统初始化     我把野火的部分系统初始化加入到原子的例程里。
    1. MPU_Memory_Protection();                                                         //初始化MPU
    2.         RT1052_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_4);          //中断优先级分组4
    3.         RT1052_Clock_Init();                                                                 //配置系统时钟
    4.         DELAY_Init(600);                                                                      //延时函数初始化

    5.     BOARD_InitPins();                                                                    //初始化开发板引脚,包括串口、LCD、OV5640
    6. BOARD_InitDebugConsole();                                                       //初始化调试串口

    7. //  W25QXX_Init();                                          //初始化W25Q256 -- 这里没有用到Flash,故屏蔽掉
    8.     my_mem_init(SRAMIN);                                                             //初始化内部SRAM内存池
    9. //        my_mem_init(SRAMEX);                               //初始化外部内存池 -- 这里没有用到SDRAM,故屏蔽掉
    10. //        my_mem_init(SRAMDTCM);                          //初始化DTCM内存池 -- 这里没有用到,故屏蔽掉
    复制代码
        2. 片上设备初始化
    1. while(USDHC1_Init())                                                                    //检测SD卡
    2.         {
    3.         PRINTF("\r\n SD Card Error! \r\n");
    4.         delay_ms(500);                                       
    5.         PRINTF("\r\n Please Check! \r\n");
    6.         delay_ms(500);
    7.         }
    8.         PRINTF("\r\n SD Card Detected OK! \r\n");
    9.         
    10.         Key_GPIO_Config();                                                                       //初始化Mode功能按键
    11.         BOARD_InitLcd();                                                                          //初始化LCD
    12.         Camera_Init();                                                                              //初始化OV5640
    复制代码
          3. 图像采集及显示
    1. ELCDIF_ClearInterruptStatus(APP_ELCDIF, kELCDIF_CurFrameDone);
    2.                         /* 等待非活动缓冲区处于活动状态 */
    3.                         while (!(kELCDIF_CurFrameDone & ELCDIF_GetInterruptStatus(APP_ELCDIF)))
    4.                         {
    5.                         }

    6.                         CAMERA_RECEIVER_SubmitEmptyBuffer(&cameraReceiver, activeFrameAddr);
    7.                         activeFrameAddr = inactiveFrameAddr;

    8.                         /* 等待获取完整帧缓冲区以显示 */
    9.                         while (kStatus_Success != CAMERA_RECEIVER_GetFullBuffer(&cameraReceiver, &inactiveFrameAddr))
    10.                         {
    11.                         }
    12.                         ELCDIF_SetNextBufferAddr(APP_ELCDIF, inactiveFrameAddr);                        
    13.                         /*获取一帧图片,activeFrameAddr为存放图片的首地址*/
    14.                         /*LCD_PIXEL_WIDTH为图片宽度,LCD_PIXEL_HEIGHT为图片高度*/
    15.                         //get_image(activeFrameAddr,800,480);
    复制代码
             摄像头采集的图像信息在bsp_ov5640.c文件的40行中进行,调用CSI接口(对应文件为fsl_csi.c)提供的CSI_IRQHandler处理函数,进行实时的数据采集。
              这里图像数据存储在cameraReceiverLCD显示数据存储在activeFrameAddr。
            4. 图像数据的保存
    1. exfuns_init();                                                              //为FatFS相关变量申请内存
    2.                                 my_mem_init(SRAMIN);                                                //初始化内部内存池
    3.                                 f_mount(fs[0],"0:",1);                                                   //挂载SD卡
    复制代码
             5. 实验结果     此次实验目的是通过mode按键将lcd显示的摄像头数据以bmp格式保存到sd卡中,但实际结果,如下图2和图3所示,sd卡中保存了以bmp格式的文件,但是其文件大小为0KB,这里有问题,待下一个实验继续解决。
                                               2.png                                                                                                           图1   串口输出信息
                                              1.png
                                                               图2  SD卡中文件信息
                                               3.png
                                                                    图3  bmp文件信息

    3.png
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条



    手机版|小黑屋|与非网

    GMT+8, 2025-1-12 20:53 , Processed in 0.110669 second(s), 16 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.