|

楼主 |
发表于 2022-5-11 12:21:17
|
显示全部楼层
ss01= JPEG_Info.ImageHeight/32;
if(ss01>18) ss01=18;
if (JPEG_Info.ImageHeight%32 !=0)
{HAL_DMA2D_Start(&hdma2d, // 启动DMA2D转换
(uint32_t)pSrc+ (JPEG_Info.ImageWidth+ inputLineOffset)*s42x*ss01, //源地址
//48= 32/2 *3 YCbCr 4:2:0数据量为每行点数*1.5
//(uint32_t)pDst+ 800*2*32*ss01+ss02, //写显示起点
(uint32_t)pDst+ 51200*ss01, //+ss02, //写显示起点
JPEG_Info.ImageWidth, //宽度
JPEG_Info.ImageHeight%32); //高度
HAL_DMA2D_PollForTransfer(&hdma2d, 25); // 查询并等待结束
}
//正常行转换显示
// ss01= JPEG_Info.ImageHeight/32;
//printf ("ss01= %d \r\n",ss01);
while (ss01--)
{HAL_DMA2D_Start(&hdma2d, // 启动DMA2D转换
(uint32_t)pSrc+ (JPEG_Info.ImageWidth+ inputLineOffset)*s42x*ss01, //源地址
//(uint32_t)pDst+ 800*2*32*ss01+ss02, //写显示起点
(uint32_t)pDst+ 51200*ss01, //+ss02, //写显示起点
JPEG_Info.ImageWidth, //宽度
32); //高度
HAL_DMA2D_PollForTransfer(&hdma2d, 25); // 查询并等待结束
}
|
|