在学习ST-emWin多图层的时候,大多数例子都是双图层,尝试配置三图层,做了如下改动: 1、把最大层数GUI_NUM_LAYERS定义为3; 2、为第三层分配内存空间 3、在LCD_LL_LayerInit中添加对第三层的初始化 4、在LCD_X_Config函数中添加第三层的配置 #if (GUI_NUM_LAYERS > 2) /* Set display driver and color conversion for 3nd layer */ GUI_DEVICE_CreateAndLink(DISPLAY_DRIVER_2, COLOR_CONVERSION_2, 0, 2); /* Set size of 3nd layer */ if (LCD_GetSwapXYEx(2)) { LCD_SetSizeEx (2, XSIZE_PHYS_LAYER3, YSIZE_PHYS_LAYER3); LCD_SetVSizeEx(2, XSIZE_PHYS_LAYER3, YSIZE_PHYS_LAYER3 * NUM_VSCREENS); } else { LCD_SetSizeEx (2, XSIZE_PHYS_LAYER3, YSIZE_PHYS_LAYER3); LCD_SetVSizeEx(2, XSIZE_PHYS_LAYER3, YSIZE_PHYS_LAYER3 * NUM_VSCREENS); } LCD_SetVisEx(2, 1); #endif 编译完成后下载到stm32f429板子上运行,结果发现LCD_X_DisplayDriver函数只能接收到第一和第二层的消息,而没有对第三层的响应,比如 case LCD_X_INITCONTROLLER: LCD_LL_LayerInit(LayerIndex); break; 以及 case LCD_X_SETVIS: if(((LCD_X_SETVIS_INFO *)pData)->OnOff == ENABLE ) { __HAL_LTDC_LAYER_ENABLE(&hltdc, LayerIndex); } else { __HAL_LTDC_LAYER_DISABLE(&hltdc, LayerIndex); } __HAL_LTDC_RELOAD_CONFIG(&hltdc); break; 导致第三层无法正常工作。 请高手帮忙分析一下,是不是还有什么地方没有配置对?如何实现三图层显示? PS:在emwin模拟器上能够成功实现三图层,LCD_X_Config里的配置一样。 |
STM32F407 定时器触发DMA 求助大神
【MCU实战经验】基于STM32F407的音频播放器设计
盘古UE-STM32F407工控板原理图
【STM32F429心得\疑问】+STM32F4之FSMC和FMC
STM32F429读取IO口传输的数据速率
STM32F407ZGT6 手摸芯片背部重启
STM32F4 SPI 动作时,软件片选信号被拉高,IO口程序逻辑失控
STM32F401RE NUCLEO求助,串口一直不能进中断
读取STM32F407内部温度传感器值错误
STM32F429多路内部ADC独立采集的办法
评分
查看全部评分