CH32V307 carema_uart

void DVP_IRQHandler(void)

{

//**********************************************************************************

? ? if (DVP->IFR & RB_DVP_IF_ROW_DONE)

? ? {

? ? ? ? /* Write 0 clear 0 */

? ? ? ? DVP->IFR &= ~RB_DVP_IF_ROW_DONE;? //clear Interrupt


#if (DVP_Work_Mode == JPEG_MODE)? ? ? ? ? ? ? ? ? ? ? ? ? ? //#define DVP_Work_Mode? ? JPEG_MODE

? ? ? ? href_cnt++;


? ? ? ? if (addr_cnt%2)? ? ?//buf1 done

? ? ? ? {

? ? ? ? ? ? addr_cnt++;

? ? ? ? ? ? DVP->DMA_BUF1 += OV2640_JPEG_WIDTH *4;

? ? ? ? }

? ? ? ? else? ? ? ? ? ? ? ? //buf0 done

? ? ? ? {

? ? ? ? ? ? addr_cnt++;

? ? ? ? ? ? DVP->DMA_BUF0 += OV2640_JPEG_WIDTH *4;

? ? ? ? }


#endif


? ? }

//******************************************************************************

? ? if (DVP->IFR & RB_DVP_IF_FRM_DONE)

? ? {

? ? ? ? DVP->IFR &= ~RB_DVP_IF_FRM_DONE;? //clear Interrupt


#if (DVP_Work_Mode == JPEG_MODE)

? ? ? ? DVP->CR0 &= ~RB_DVP_ENABLE;? ? ? ?//disable DVP


? ? ? ? //Use uart2 send JPEG data.

? ? ? ? {

? ? ? ? ? ? UINT32 i;

? ? ? ? ? ? UINT16 val;


? ? ? ? ? ? href_cnt = href_cnt*OV2640_JPEG_WIDTH;


? ? ? ? ? ? for(i=0; i

? ? ? ? ? ? ? ? val = *(UINT16*)(0x20005000+i*2);

? ? ? ? ? ? ? ? UART2_Send_Byte((UINT8)(val>>2));// | 0xC0);//((val>>4)|(val));

? ? ? ? ? ? }


? ? ? ? }


? ? ? ? DVP->CR0 |= RB_DVP_ENABLE;? //enable DVP


? ? ? ? DVP->DMA_BUF0 = JPEG_DVPDMAaddr0;? ? ? ? //DMA addr0

? ? ? ? DVP->DMA_BUF1 = JPEG_DVPDMAaddr1;? ? ? ? //DMA addr1

? ? ? ? href_cnt = 0;


? ? ? ? addr_cnt =0;


#endif


? ? }

//************************************************************************************

? ? if (DVP->IFR & RB_DVP_IF_STR_FRM)

? ? {

? ? ? ? DVP->IFR &= ~RB_DVP_IF_STR_FRM;? //clear Interrupt


? ? ? ? frame_cnt++;

? ? }


? ? if (DVP->IFR & RB_DVP_IF_STP_FRM)

? ? {

? ? ? ? DVP->IFR &= ~RB_DVP_IF_STP_FRM;? //clear Interrupt


? ? }


? ? if (DVP->IFR & RB_DVP_IF_FIFO_OV)

? ? {

? ? ? ? DVP->IFR &= ~RB_DVP_IF_FIFO_OV;? ?//clear Interrupt


? ? ? ? printf("FIFO OV\r\n");

? ? }

}

請問是否可以把每一部分的代碼的功能大體解釋一下,并且想咨詢一下,如何修改代碼實(shí)現(xiàn)只采集一幀圖像,通過串口發(fā)出去

您好,該函數(shù)為DVP中斷處理函數(shù),對應(yīng)DVP中斷使能寄存器的各個位,在DVP初始化配置使能開啟DVP中斷后,會觸發(fā)進(jìn)入中斷,在中斷函數(shù)中會進(jìn)行中斷標(biāo)志位的清除以及進(jìn)行相關(guān)的操作,具體可結(jié)合CH32V307應(yīng)用手冊關(guān)于DVP寄存器的介紹來看。下面鏈接為應(yīng)用手冊下載鏈接,可下載下來對照看一下。

http://m.findthetime.net/downloads/CH32FV2x_V3xRM_PDF.html?

image.png



只有登錄才能回復(fù),可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频