ILI93xx屏幕坐标系及扫描方式配置(LCD学习笔记1)

您所在的位置:网站首页 kindle竖屏改变方向 ILI93xx屏幕坐标系及扫描方式配置(LCD学习笔记1)

ILI93xx屏幕坐标系及扫描方式配置(LCD学习笔记1)

2023-12-26 12:10| 来源: 网络整理| 查看: 265

前言 博文基于STM32F103ZET6,MDK和3.5.0标准库开发如有不足之处,多指教 屏幕坐标系(呵呵,我自己给取的名字)

在这里插入图片描述在这里插入图片描述在这里插入图片描述 R50h~R53h:水平垂直RAM地址位置;用来设定整个屏幕上的显示区域; R50h(HSA[7:0]):水平起始地址寄存器; R51h(HEA[7:0]):水平结束地址寄存器; R52h(VSA[7:0]):垂直起始地址寄存器; R53h(VEA[7:0]):垂直结束地址寄存器;

坐标系参数: 从上面的图片中和英文中可以了解,LCD屏幕上的每个像素点所对应GRAM显存单元是不能改变的,LCD屏幕默认为以人们习惯的竖屏方式的模板,以左上角点为坐标系原点,有方向为水平方向,下方向为垂直方向;如下图: 在这里插入图片描述 特点:

每个像素点对应的坐标是确定的,不会随竖屏/横屏模式的改变而改变,也不会随屏幕像素点扫描方式的改变而改变;在程序的开始需要对以上四个寄存器进行配置,一般情况下都是全屏使用;当然后期如果需要更改显示区域大小,那就必须修改这四个寄存器的值了;比如开窗函数就是用来配置这四个寄存器; 8种扫描方式

8中扫描方式 在这里插入图片描述 配置用的寄存器 在这里插入图片描述 AM: GRAM更新方向控制位;可以理解为可以决定我们平时说的横屏还是竖屏; 0:地址水平更新扫描;(横屏模式) 1:地址垂直更新扫描;(竖屏模式) 当屏幕上所要打开的窗口被R50h~R53h寄存器配置结束后,GRAM范围根据I/D[1:0]和AM的配置更新扫描; I/D: 地址计数器自增自减控制位;

值得注意的是: 上面截图中的扫描图片水平方向比垂直方向要宽,这很容易让人产生误解;

部分代码例程 /*lcd.h*/ /*屏幕扫描方向配置*/ typedef enum { /*竖屏模式*/ L2R_U2D = 0, //从左到右,从上到下 L2R_D2U = 1, //从左到右,从下到上 R2L_U2D = 2, //从右到左,从上到下 R2L_D2U = 3, //从右到左,从下到上 /*横屏模式*/ U2D_L2R = 4, //从上到下,从左到右 U2D_R2L = 5, //从上到下,从右到左 D2U_L2R = 6, //从下到上,从左到右 D2U_R2L = 7, //从下到上,从右到左 }LCD_Scan_Direction; /*lcd.c*/ //开窗(LCD全屏) LCD_WR_REG_Data(Horizontal_Address_Start_Position,0x0000); LCD_WR_REG_Data(Horizontal_Address_End_Position,0x00EF); LCD_WR_REG_Data(Vertical_Address_Start_Position,0x0000); LCD_WR_REG_Data(Vertical_Address_End_Position,0x013F); /*设置屏幕扫描方向*/ void LCD_Scan_Dir_Config(uint8_t Scan_Direction) { uint16_t Reg_Value; switch(Scan_Direction) { case L2R_U2D://从左到右,从上到下 Reg_Value|=(1


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3