通过实测 多缓冲切换是lin=0 进行的,DEMO里中断回调函数里 HAL_LTDC_ProgramLineEvent(hltdc, 0)实现。调用GUI_MULTIBUF_Begin()或GUI_MULTIBUF_BeginEx()对绘图进行缓冲,此时emWin会将显示buffer的内容拷贝到缓冲buffer中;进行绘图工作,此时所有的绘图工作都将在缓冲buffer中进行;调用GUI_MULTIBUF_End()或GUI_MULTIBUF_EndEX()结束缓冲。LCD_X_DisplayDriver函数会调用LCD_X_SHOWBUFFER命令,并把当前要显示层实际buff所有传递 layer_prop[LayerIndex].pending_buffer = ((LCD_X_SHOWBUFFER_INFO *)pData)->Index; (Index 变化成需要实现缓冲值)。然后就是等待lin中断 切换液晶显示地址完成一帧
|