1.移植ILI9488驱动,是有io模拟spi进行驱动液晶,因为之前已经在其他板卡上运行过液晶程序,已验证可以试用,在瑞萨的板卡上只需要再次配置相应的管脚模式就可以。驱动液晶主要使用的是PMOD1接口得相关引脚。
相关引脚通过FSP配置成输入输出模式。
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文件夹下。
4.打开FSP,修改工程的堆栈大小。都设置成0X3000.
5.编译下载文件。
更多回帖