硬件JPEG,原本就是一部分一部分解析的,全部缓冲到SDRAM仅仅是方便整体DMA2D显示,有些防止撕裂拉窗的效果。
如果需要,用户仅需在解析一部分后直接显示出去腾空间,让后续解析继续添加进来即可。
关键的地方就在这里。
[C] 纯文本查看 复制代码 /*
*********************************************************************************************************
* 函 数 名: HAL_JPEG_DataReadyCallback
* 功能说明: JPEG回调函数,用于输出缓冲地址更新
* 形 参: hjpeg JPEG_HandleTypeDef 句柄指针
* pDataOut 输出数据缓冲
* OutDataLength 输出数据大小,单位字节
* 返 回 值: 无
*********************************************************************************************************
*/
void HAL_JPEG_DataReadyCallback (JPEG_HandleTypeDef *hjpeg, uint8_t *pDataOut, uint32_t OutDataLength)
{
/* 更新JPEG输出地址 */
FrameBufferAddress += OutDataLength;
HAL_JPEG_ConfigOutputBuffer(hjpeg, (uint8_t *)FrameBufferAddress, CHUNK_SIZE_OUT);
}
|