001 ST7789S移植过程中学习心得

1. 准备工作

 本次需要用到的器材有ESP32、高通字库、ST7789液晶屏。






前言

随着学习的深入,本次学习GUI交互功能之液晶屏移植。






一、液晶屏操作关键信息

(1)需要在指定位置显示,需要指定显示RAM操作地址。

 操作步骤为:

       首先,写入X方向起始地址跟结束地址;其次,写入Y方向的起始地址跟结束地址;最后,在指定区域内填充像素点(16bit)的值。

X方向:

XS[15:0]必须始终等于或小于XE [15:0]

当XS[15:0]或XE[15:0]大于如下所示的最大地址时,超出范围的数据将被忽略.

MV="0" :参数范围:0<Xs[15:0]<239(00efh)

MV="1" :参数范围:0Xs[15:0]<319(013FH)

Y方向:

YS[15:0]必须始终等于或小于YE [15:0]

当YS[15:0]或YE[15:0]大于如下所示的最大地址时,超出范围的数据将被忽略。

MV="0":参数范围:0<YS[15:0]<YE[15:0]<239

MV="1"参数范围:0<YS[15:0]<YE[15:0]<319

RAMWR:





二、使用步骤

//写寄存器函数
//regval:寄存器值
void LCD_WR_REG(uint16_t regval)
{    
 lcd_cmd(lcd_spi,regval);
}
//写LCD数据
//data:要写入的值
void LCD_WR_DATA(uint16_t data)
{	 
  lcd_data(lcd_spi,&data,1); 
}
//开始写GRAM
void LCD_WriteRAM_Prepare(void)
{
  lcd_cmd(lcd_spi,(void*)lcddev.wramcmd);
}


void LCD_Address_Set(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2)
{
   
    /* 指定X方向操作区域 */
	LCD_WR_REG(lcddev.setxcmd); //2AH
    LCD_WR_DATA(x1 >> 8);
    LCD_WR_DATA(x1);
    LCD_WR_DATA(x2 >> 8);
    LCD_WR_DATA(x2);

    /* 指定Y方向操作区域 */
	LCD_WR_REG(lcddev.setycmd); //2BH
    LCD_WR_DATA(y1 >> 8);
    LCD_WR_DATA(y1);
    LCD_WR_DATA(y2 >> 8);
    LCD_WR_DATA(y2);
    LCD_WriteRAM_Prepare();//2CH  //开始写入GRAM	 
}

void Write_RAM_Dat(uint8_t *str,uint8_t len){
  lcd_data(lcd_spi,&data,len); 
}

  我们每次操作的时候都需要指定操作区域,使用 void LCD_Address_Set(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2)函数来指定区域。再调用void Write_RAM_Dat(uint8_t *str,uint8_t len),写入数据即可,注意根据RGB565可以一个像素点的值为16bit。

三、地址控制

       地址计数器设置用于写入和读取的显示数据RAM的地址。
       数据按像素顺序写入驱动器的RAM矩阵中。收集一个或两个像素的数据(RGB 6-6-6位),根据数据格式而定。一旦这个像素数据信息完成“写”access”在RAM上被激活。内存的位置由地址指针来寻址。地址范围为X=0 ~ X=239 (Efh)和Y=0 ~ Y=319 (13Fh)。这些范围之外的地址是不允许的。在写入RAM之前,必须定义一个将要写入的窗口。窗口是可编程通过命令中注册XS、YS表示起始地址,XE、YE表示结束地址。

例如,整个显示内容将被写入,窗口由以下值定义:
XS=0 (0h) YS=0 (0h), XE=239 (Efh), YE=319 (13Fh)。

        在垂直寻址模式(MV=1)中,y地址在最后一个y地址之后的每个字节之后递增(Y=YE), Y绕到YS和X个增量来定位下一列。水平寻址方式(V=0), X-address在每个字节后递增,在最后一个X-address (X=XE)后,X绕到XS和Y个增量来寻址下一行。在每一个地址之后(X=XE和Y=YE)地址指针绕到地址(X=XS和Y=YS)。

       为了灵活地处理各种各样的显示架构,命令“CASET, RASET和,定义标志MX和MY,它允许x地址和y地址的镜像。所有的组合flags是允许的。第8.12节显示了写入显示RAM的可用组合。当MX、MY和MV被改变时,数据将被重写到显示RAM中。

对于每个图像情况,列和行计数器的控件应用如下:






总结

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值