|

楼主 |
发表于 2019-4-24 16:19:26
|
显示全部楼层
测试函数如下:- /**
- * @brief Draw alpha bitmap
- * @param pDst : Destination buffer
- * @param pSrc : Source buffer
- * @param xSize : Picture horizontal size
- * @param ySize : Picture vertical size
- * @param OffLineSrc : Source line offset
- * @param OffLineDst : Destination line offset
- * @param PixelFormat: Pixel format
- * @retval None
- */
- static void _DMA_DrawAlphaBitmap(void * pDst, const void * pSrc, int xSize, int ySize, int OffLineSrc, int OffLineDst, int PixelFormat)
- {
-
- /* Setup DMA2D Configuration */
- DMA2D->CR = 0x00020000UL | (1 << 9);
- DMA2D->FGMAR = (uint32_t)pSrc;
- DMA2D->BGMAR = (uint32_t)pDst;
- DMA2D->OMAR = (uint32_t)pDst;
- DMA2D->FGOR = OffLineSrc;
- DMA2D->BGOR = OffLineDst;
- DMA2D->OOR = OffLineDst;
- DMA2D->FGPFCCR = LTDC_PIXEL_FORMAT_ARGB8888;
- DMA2D->BGPFCCR = PixelFormat;
- DMA2D->OPFCCR = PixelFormat;
- DMA2D->NLR = (uint32_t)(xSize << 16) | (uint32_t)ySize;
- /* Start the transfer, and enable the transfer complete IT */
- DMA2D->CR |= (1|DMA2D_IT_TC);
-
- /* 等待DMA2D传输完成 */
- while (DMA2D->CR & DMA2D_CR_START)
- {
- }
-
- }
复制代码
|
|