应用层vs模组驱动层函数对应表

以下表格是各种应用层的操作(这里的应用层是指rt_device层的调用)对应的底层驱动发生的事情:

屏幕的应用层操作和对应的底层函数调用

打开屏幕调用流程

应用层调用函数:

rt_device_open(lcd_device, RT_DEVICE_OFLAG_RDWR); //打开屏幕

顺序

驱动层调用函数

函数在文件路径

描述

1

BSP_LCD_PowerUp(void);

bsp_lcd_tp.c

屏幕上电

2

LCD_Init(hlcdc)

nv3051f1.c

屏驱初始化函数

3

LCD_ReadID(hlcdc)

nv3051f1.c

屏幕在位检测(开机检测1次)

关闭屏幕调用流程

应用层调用函数:

rt_device_close(lcd_device); //关闭屏幕

顺序

驱动层调用函数

函数在文件路径

描述

1

LCD_DisplayOff(hlcdc)

nv3051f1.c

关闭液晶

2

LCD_SetBrightness(hlcdc, br)

nv3051f1.c

设置背光亮度为0

3

BSP_LCD_PowerDown(void);

bsp_lcd_tp.c

屏幕下电

设置屏幕数据接收区域

应用层调用函数:

rt_graphix_ops(lcd_device)->set_window(0,0,239,319); //设置起始坐标为{0,0},高宽为240x320的接收区域

顺序

驱动层调用函数

函数在文件路径

描述

1

LCD_SetRegion(hlcdc, Xpos0, Ypos0, Xpos1, Ypos1)

nv3051f1.c

设置屏幕接收区域

推送Framebuffer到屏幕

应用层调用函数:

uint8_t framebuffer[240*320];
rt_graphix_ops(lcd_device)->draw_rect_async((const char *)&frambuffer, 0,0,239,319); //推送起始坐标为{0,0},高宽为240x320的Framebuffer到屏幕

顺序

驱动层调用函数

函数在文件路径

描述

1

LCD_WriteMultiplePixels(hlcdc, const uint8_t *RGBCode, Xpos0, Ypos0, Xpos1, Ypos1)

nv3051f1.c

推送Framebuffer到屏幕

设置屏幕亮度

应用层调用函数:

uint8_t brightness = 100;//背光亮度百分比值
rt_device_control(lcd_device, RTGRAPHIC_CTRL_SET_BRIGHTNESS, &brightness); //设置背光亮度

顺序

驱动层调用函数

函数在文件路径

描述

1

LCD_SetBrightness(hlcdc, br)

nv3051f1.c

设置背光亮度

2

LCD_DisplayOn(hlcdc)

nv3051f1.c

打开液晶屏幕





TP的应用层操作和对应的底层函数调用

打开TP设备

rt_device_open(touch_device, RT_DEVICE_FLAG_RDONLY); //打开TP设备

顺序

驱动层调用函数

函数在文件路径

描述

1

BSP_TP_PowerUp

bsp_lcd_tp.c

触控上电

2

rt_bool_t probe(void)

gt911.c

触控在位检测(只做1次)

3

rt_err_t init(void)

gt911.c

触控初始化

关闭TP设备

rt_device_close(touch_device); //关闭TP设备

顺序

驱动层调用函数

函数在文件路径

描述

1

rt_err_t deinit(void)

gt911.c

触控去初始化

2

BSP_TP_PowerUp

bsp_lcd_tp.c

触控上电

读取TP数据点

struct touch_message touch_data;
rt_device_read(touch_device, 0, &touch_data, 1); //读取TP数据点

顺序

驱动层调用函数

函数在文件路径

描述

1

rt_err_t read_point(touch_msg_t p_msg)

gt911.c

触控读取数据点