首页 > 代码库 > stm32 DCMI接口CROP功能使用

stm32 DCMI接口CROP功能使用

     最近使用stm32F407单片机通过摄像头采集图像进行处理,其中使用到DCMI接口CROP功能。但在网上找了很久,有用的资料不多,只能自己研究,特将自己的使用方法记录下来。

     1.如何设置CROP。

           定义:

                DCMI_CROPInitTypeDef DCMI_CROPInitStruct;

           参数设置:

               DCMI_CROPInitStruct.DCMI_CaptureCount=Width;                         //capcnt
               DCMI_CROPInitStruct.DCMI_HorizontalOffsetCount=StartX;           //hoffcnt
               DCMI_CROPInitStruct.DCMI_VerticalLineCount=Height;                 //vline
               DCMI_CROPInitStruct.DCMI_VerticalStartLine=StartY;                   //vst
               DCMI_CROPConfig(&DCMI_CROPInitStruct);

          如果要投入使用还有一条语句:

               DCMI_CROPCmd(ENABLE);

     2.前面参数中,数据手册的说明有时候容易造成理解错误,特别是CAPCNT要求是4的倍数,实际这个CAPCNT开始值是0,所以要设置的Width不是4的倍数,还得减1.

     3.另外,CAPCNT是传输的数据字节数不是像素值,而RGB565,一个像素是2个字节,因此比如我想采集的是320像素,实际这个Width=320*2-1=639

     4.如果还需要在液晶上显示的话,还得修改LCD的显示区域的参数为对应的值,我的是LCD_SetDisplayWindow(.....).


    给个我的参数值:320x240分辨率,CROP下半个屏幕:Width=639,StartX=0,Height=120,StartY=0;LCD_SetDisplayWindow(_X(0), _Y(0), 120, 320);




stm32 DCMI接口CROP功能使用