|
另外的小屏幕是能正常显示lvgl测试界面
但这个大屏幕lvgl显示不全,界面都出来了,但就整体往上偏,不知道怎么解决了,我把长和宽调小才看到控件,但感觉是往上偏,不用lvgl单独给屏幕刷屏,是能完整显示出来,但移植到lvgl就不行了
型号ST7796S,3.5英寸触摸 SPI
/* Example for 2) */
static lv_disp_draw_buf_t draw_buf_dsc_2;
static lv_color_t buf_2_1[MY_DISP_HOR_RES * 20]; /*A buffer for 10 rows*/
static lv_color_t buf_2_2[MY_DISP_HOR_RES * 20]; /*An other buffer for 10 rows*/
lv_disp_draw_buf_init(&draw_buf_dsc_2, buf_2_1, buf_2_2, MY_DISP_HOR_RES * 10); /*Initialize the display buffer*/
unsigned int size = (area->x2 - area->x1 + 1) * (area->y2 - area->y1 + 1) * 2;
LCD_SetWindows(area->x1, area->y1, area->x2, area->y2); //指定填充区域
//printf("area3 x1 %d y1 %d x2 %d y2 %d ",area->x1,area->y1,area->x2,area->y2);
MYDMA_Enable(DMA2_Stream5,color_p, size);
disp_DMA = disp_drv;
void DMA2_Stream5_IRQHandler() // 这是DMA2_Stream3的中断处理函数
{
if(DMA_GetITStatus(DMA2_Stream5,DMA_IT_TCIF5)) // 检查DMA2_Stream3的传输完成中断标志位
{
DMA_ClearITPendingBit(DMA2_Stream5,DMA_IT_TCIF5); // 清除DMA2_Stream3的传输完成中断标志位
//LCD_CS_SET;
DMA_Cmd(DMA2_Stream5,DISABLE);
LCD_SetWindows(0,0,lcddev.width-1,lcddev.height-1);//恢复窗口设置为全屏
lv_disp_flush_ready(disp_DMA); // 刷新显示
disp_enable_update(); // 启用显示更新
}
}
|
-
|