野火科技
直播中

apple07

11年用户 68经验值
擅长:嵌入式技术
私信 关注
[经验]

【野火启明6M5开发板体验】移植ILI9488液晶驱动及LVGL

1.移植ILI9488驱动,是有io模拟spi进行驱动液晶,因为之前已经在其他板卡上运行过液晶程序,已验证可以试用,在瑞萨的板卡上只需要再次配置相应的管脚模式就可以。驱动液晶主要使用的是PMOD1接口得相关引脚。
image.png
相关引脚通过FSP配置成输入输出模式。
image.png
image.png
image.pngimage.pngimage.pngimage.png
IO模拟spi函数
void SPIv_WriteData(uint8_t Data)
{
unsigned char i=0;
for(i=8;i>0;i--)
{
if(Data&0x80)
SPI_MOSI_SET; //ʤ³öʽ¾ݍ
else SPI_MOSI_CLR;
SPI_SCLK_CLR;
SPI_SCLK_SET;
Data<<=1;
}
}
2.移植LVGL相关程序。移植lvgl主要修改
lv_port_disp.c文件中static void disp_flush(lv_disp_drv_t * disp_drv, const lv_area_t * area, lv_color_t * color_p)这个函数。修改为如下
static void disp_flush(lv_disp_drv_t * disp_drv, const lv_area_t * area, lv_color_t * color_p)
{
/*The most simple case (but also the slowest) to put all pixels to the screen one-by-one*/

int32_t x;
int32_t y;
for(y = area->y1; y <= area->y2; y++) {
    for(x = area->x1; x <= area->x2; x++) {
        /*Put a pixel to the display. For example:*/
        /*put_px(x, y, *color_p)*/
					LCD_SetCursor(x,y);//ɨփ¹ⱪλփ 
					Lcd_WriteData_16Bit(color_p->full); 
        color_p++;
    }
}

//LCD_Fill(area->x1,area->y1,area->x2,area->y2,* color_p);
/*IMPORTANT!!!
Inform the graphics library that you are ready with the flushing/
lv_disp_flush_ready(disp_drv);
}
到这里基本完成移植。
3.通过gui_guider程序,绘制显示内容,生成代码,将generated文件夹内容复制到工程的src文件夹下。
image.png
4.打开FSP,修改工程的堆栈大小。都设置成0X3000.
image.png
5.编译下载文件。

ef530384d312aed8addfee8313618be6

更多回帖

发帖
×
20
完善资料,
赚取积分