添加新的屏幕驱动

添加新的屏幕驱动主要分为:

  1. 在Kconfig文件中增加驱动IC的宏定义

  2. 复制类似的驱动代码并加入编译

  3. 修改复制的屏幕驱动文件

在Kconfig文件中增加驱动IC的宏定义

打开SDK\customer\peripherals\Kconfig文件里面有很多类似LCD_USING_XXX的config,在后面添加新的config:

config LCD_USING_NV3051F1
    bool
    default n

注意: 如果已经有同名的屏驱IC,则意味着只需修改现有驱动的初始代码。

复制类似的驱动代码并加入编译

  • 在SDK\customer\peripherals目录下找一个类似且已适配过的屏驱

  • 将整个目录copy一份,并将其目录名称改成"nv3051f1"

  • 里面的屏驱.c文件也改成nv3051f1.c, 并修改里面的内容

  • 里面的SConscript文件中的depend宏改为前面添加的‘LCD_USING_NV3051F1’,让新加的文件加入编译

修改复制的屏幕驱动文件

配置屏幕参数

根据接口不同,每一种屏幕需要配置的参数会有所区别,如下几种屏幕接口均有各自对应的参数进行配置:

修改屏驱回调函数

修改复制过来的屏驱里面的内容为自己的,屏驱里面的回调函数说明:

注:可选的回调函数可以注册为NULL,或者函数内部实现为空

回调函数

说明

LCD_Init

【必选】,屏驱初始函数(包括复位,初始化程序等)

LCD_ReadID

【必选】,屏幕在位检测函数

LCD_DisplayOn

【必选】,屏幕打开

LCD_DisplayOff

【必选】,屏幕关闭

LCD_SetRegion

【必选】,设置屏幕接受数据时的区域(2A,2B 的区域)

LCD_WritePixel

可选,写一个像素点到屏幕上

LCD_WriteMultiplePixels

【必选】,写批量像素点到屏幕上

LCD_ReadPixel

可选,读屏幕上的一个像素点数据,返回像素的RGB值

LCD_SetColorMode

可选,切换输出给屏幕的颜色格式

LCD_SetBrightness

可选,设置屏幕的亮度

LCD_IdleModeOn

可选,进入待机显示模式(低功耗模式)

LCD_IdleModeOff

可选,退出待机显示模式(低功耗模式)

LCD_Rotate

可选,旋转屏幕一定角度

LCD_TimeoutDbg

可选,批量送数超时后,屏幕自检

LCD_TimeoutReset

可选,批量送数超时后,屏幕复位

LCD_ESDCheck

可选,屏幕定时ESD检测

注册屏驱到系统

通过LCD_DRIVER_EXPORT2将屏驱IC的回调函数注册到系统:

LCD_DRIVER_EXPORT2(nv3051f1, LCD_ID, &lcdc_int_cfg,
                  &LCD_drv,2);

参数说明:

  • nv3051f1 - 屏驱IC的名字

  • LCD_ID - 屏幕在位时,屏幕在位检测函数LCD_ReadID应该返回的值。

  • &lcdc_int_cfg - 对外提供屏幕初始化参数(外部只读不写,只用于查询屏幕带宽、颜色格式等信息)

  • &LCD_drv - 屏驱IC的所有操作的回调函数集合

  • 2 - 该屏驱IC更新屏幕区域要求2像素对齐