|
1.驱动地址:_gx_display_driver_565rgb_setup(display, (VOID*)STM32_SCREEN_HANDLE, stm32h7_565rgb_buffer_toggle);
2.触摸地址:event.gx_event_display_handle = 0xC0000000;
gx_system_event_send(&event);
3.画布地址:guiapp_display_table[0].canvas_memory = (GX_COLOR *)Canvas_Memory;
4.LTDC中断地址:void LTDC_IRQHandler(void)
{
LTDC->ICR = (uint32_t)LTDC_IER_LIE;
if(g_ucGuixFlag == 0)
{
g_ucGuixFlag = 1;
/* 更新LTDC寄存器 */
__HAL_LTDC_LAYER(&hLTDC, 0)->CFBAR = 0xC0000000;
__HAL_LTDC_RELOAD_IMMEDIATE_CONFIG(&hLTDC);
}
else
{
g_ucGuixFlag = 0;
/* 更新LTDC寄存器 */
__HAL_LTDC_LAYER(&hLTDC, 0)->CFBAR = 0xC0200000;
__HAL_LTDC_RELOAD_IMMEDIATE_CONFIG(&hLTDC);
}
tx_semaphore_put(&GuixSemaphore);
}
5.双缓冲地址:
void DoubleBufferPro(void)
{
tx_semaphore_get(&GuixSemaphore, TX_WAIT_FOREVER);
if(g_ucGuixFlag == 1)
{
DMA2D->OMAR = (uint32_t)0xC0200000;
}
else
{
DMA2D->OMAR = (uint32_t)0xC0000000;
}
DMA2D->CR = 0x00000000UL | (1 << 9);
DMA2D->FGMAR = (uint32_t)0xC0400000;
DMA2D->FGOR = 0;
DMA2D->OOR = 0;
/* 前景层和输出区域都采用RGB565颜色格式 */
DMA2D->FGPFCCR = LTDC_PIXEL_FORMAT_RGB565;
DMA2D->OPFCCR = LTDC_PIXEL_FORMAT_RGB565;
DMA2D->NLR = (uint32_t)(g_LcdWidth << 16) | (uint16_t)g_LcdHeight;
DMA2D->CR |= DMA2D_CR_START;
while (DMA2D->CR & DMA2D_CR_START) { tx_thread_sleep(1);}
}
触摸地址和驱动地址一致,有些滑动显示不正常。触摸地址是否跟着显示地址变化呢?
|
|