在线时间20 小时
UID3534256
注册时间2019-1-11
NXP金币0
TA的每日心情 | 郁闷 2020-8-18 09:16 |
---|
签到天数: 6 天 连续签到: 1 天 [LV.2]偶尔看看I
注册会员

- 积分
- 111
- 最后登录
- 2020-10-9
|
i.MX RT1052的板子,使用LCD屏分辨率是1366 * 768, 在绘图是使用GUI_MULTIBUF_Begin和GUI_MULTIBUF_End函数做缓冲处理, 发现显示屏的底部有小部分没有刷新,显示不全?是什么原因?基本的定义是这样的
#define GUI_BUFFERS 2
#define VRAM_SIZE (LCD_HEIGHT * LCD_WIDTH * LCD_BYTES_PER_PIXEL)
AT_NONCACHEABLE_SECTION_ALIGN(uint8_t s_gui_memory[GUI_NUMBYTES * LCD_BYTES_PER_PIXEL], FRAME_BUFFER_ALIGN);
AT_NONCACHEABLE_SECTION_ALIGN(uint8_t s_vram_buffer[VRAM_SIZE * GUI_BUFFERS * LCD_BYTES_PER_PIXEL], FRAME_BUFFER_ALIGN);
void LCD_X_Config(void)
{
GUI_MULTIBUF_Config(GUI_BUFFERS);
GUI_DEVICE_CreateAndLink(DISPLAY_DRIVER, COLOR_CONVERSION, 0, 0);
LCD_SetSizeEx(0, LCD_WIDTH, LCD_HEIGHT);
LCD_SetVSizeEx(0, LCD_WIDTH, LCD_HEIGHT);
LCD_SetVRAMAddrEx(0, (void *)VRAM_ADDR);
}
如果将GUI_BUFFERS定义为1, 表示只有一个buffer, 底部的刷新是可以显示的,但是划竖线就会断断续续,什么原因啊???
如果将GUI_BUFFERS定义为2, 使用GUI_MULTIBUF_BeginEx(0)及GUI_MULTIBUF_End(0),也是一样底部小部分不能显示。如果是GUI_MULTIBUF_BeginEx(1)及GUI_MULTIBUF_End(1),底部的刷新是可以显示的,但是划竖线就会断断续续,什么原因啊???
最佳答案
不好意思回复晚了。
你所用的LCD屏分辨率达 1366x768到RT1050支持的极限,如果系统造成一些延误就会产生这种现象。
建议更换成小一些分辨率的屏。
|
|