# 修改屏幕驱动 (modify-lcd-c-file)= ## 修改复制的屏幕驱动文件 (update-lcd-param)= ### 配置屏幕参数 根据接口不同,每一种屏幕需要配置的参数会有所区别,如下几种屏幕接口均有各自对应的参数进行配置: ```{toctree} :titlesonly: DBI屏幕参数配置.md DPI屏幕参数配置.md DSI屏幕参数配置.md SPI屏幕参数配置.md JDI屏幕参数配置.md ``` ### 修改屏驱回调函数 修改复制过来的屏驱里面的内容为自己的,屏驱里面的回调函数说明: _注:可选的回调函数可以注册为NULL,或者函数内部实现为空_ |回调函数| 说明| |:---- | ---- | | [LCD_Init](lcd-cb-func-LCD-Init)| 【必选】,屏驱初始函数(包括复位,初始化程序等) | | [LCD_ReadID](lcd-cb-func-LCD-ReadID)| 【必选】,屏幕在位检测函数 | | [LCD_DisplayOn](lcd-cb-func-LCD-DisplayOn)| 【必选】,屏幕打开 | | [LCD_DisplayOff](lcd-cb-func-LCD-DisplayOff)| 【必选】,屏幕关闭 | | [LCD_SetRegion](lcd-cb-func-LCD-SetRegion)| 【必选】,设置屏幕接受数据时的区域(2A,2B 的区域)| | [LCD_WritePixel](lcd-cb-func-LCD-WritePixel)| 可选,写一个像素点到屏幕上| | [LCD_WriteMultiplePixels](lcd-cb-func-LCD-WriteMultiplePixels)| 【必选】,写批量像素点到屏幕上| | [LCD_ReadPixel](lcd-cb-func-LCD-ReadPixel)| 可选,读屏幕上的一个像素点数据,返回像素的RGB值| | [LCD_SetColorMode](lcd-cb-func-LCD-SetColorMode)| 可选,切换输出给屏幕的颜色格式| | [LCD_SetBrightness](lcd-cb-func-LCD-SetBrightness)| 可选,设置屏幕的亮度 | | [LCD_IdleModeOn](lcd-cb-func-LCD-IdleModeOn)| 可选,进入待机显示模式(低功耗模式) | | [LCD_IdleModeOff](lcd-cb-func-LCD-IdleModeOff)| 可选,退出待机显示模式(低功耗模式) | | [LCD_Rotate](lcd-cb-func-LCD-Rotate)| 可选,旋转屏幕一定角度 | | [LCD_TimeoutDbg](lcd-cb-func-LCD-TimeoutDbg)| 可选,批量送数超时后,屏幕自检 | | [LCD_TimeoutReset](lcd-cb-func-LCD-TimeoutReset)| 可选,批量送数超时后,屏幕复位 | | [LCD_ESDCheck](lcd-cb-func-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](./框架介绍.md#lcd-driver-detect-method)应该返回的值。 - &lcdc_int_cfg - 对外提供屏幕初始化参数(外部只读不写,只用于查询屏幕带宽、颜色格式等信息) - &LCD_drv - 屏驱IC的所有操作的回调函数集合 - 2 - 该屏驱IC更新屏幕区域要求2[像素对齐](./框架介绍.md#lcd-ic-pixel-alignment)