st7789 旋转_有没有人调过 ST7789V驱动的显示屏啊「建议收藏」

本帖最后由quanhengwen于2019-9-511:15编辑可以在显示命令之前,手工进行全屏清屏操作,可以避免初始化花屏现象。自己部分代码SPI控制的分辨率为320*240横屏显示/******************************************************************************函数说明:LCD初始化函数入口数据:无返回…

大家好,又见面了,我是你们的朋友全栈君。

本帖最后由 quanhengwen 于 2019-9-5 11:15 编辑

可以在显示命令之前,手工进行全屏清屏操作,可以避免初始化花屏现象。 自己部分代码SPI控制的 分辨率为320*240 横屏显示

/******************************************************************************

函数说明:LCD初始化函数

入口数据:无

返回值:  无

******************************************************************************/

void ST7789Lcd_Init(void)

{

ST7789_GPIO_Config();

SPI3_Init();

SPI3_SetSpeed(SPI_BaudRatePrescaler_2);

SPI3_ReadWriteByte(0xff);

OLED_RST_Set();

delay_ms(20);

OLED_RST_Clr();

delay_ms(20);

OLED_RST_Set();

delay_ms(120);

//************************************************

ST7789_WR_REG(0x3A);        //65k mode

ST7789_WR_DATA(0x05);

ST7789_WR_REG(0xC5); //VCOM

ST7789_WR_DATA(0x1A);

ST7789_WR_REG(0x36);                 // 屏幕显示方向设置

ST7789_WR_DATA(0xA0);

//————-ST7789V Frame rate setting———–//

ST7789_WR_REG(0xb2);

ST7789_WR_DATA(0x05);

ST7789_WR_DATA(0x05);

ST7789_WR_DATA(0x00);

ST7789_WR_DATA(0x33);

ST7789_WR_DATA(0x33);

ST7789_WR_REG(0xb7);

ST7789_WR_DATA(0x35);

//————–ST7789V Power setting—————//

ST7789_WR_REG(0xBB);//VCOM

ST7789_WR_DATA(0x3F);

ST7789_WR_REG(0xC0); //Power control

ST7789_WR_DATA(0x2c);

ST7789_WR_REG(0xC2);

ST7789_WR_DATA(0x01);

ST7789_WR_REG(0xC3);

ST7789_WR_DATA(0x0F);//0D        gvdd

ST7789_WR_REG(0xC4);

ST7789_WR_DATA(0x20);

ST7789_WR_REG(0xC6);

ST7789_WR_DATA(0X11);//0x0F

ST7789_WR_REG(0xd0);

ST7789_WR_DATA(0xa4);

ST7789_WR_DATA(0xa1);

ST7789_WR_REG(0xE8);

ST7789_WR_DATA(0x03);

ST7789_WR_REG(0xE9);

ST7789_WR_DATA(0x09);

ST7789_WR_DATA(0x09);

ST7789_WR_DATA(0x08);

//—————ST7789V gamma setting————-//

ST7789_WR_REG(0xE0); //Set Gamma

ST7789_WR_DATA(0xD0);

ST7789_WR_DATA(0x05);

ST7789_WR_DATA(0x09);

ST7789_WR_DATA(0x09);

ST7789_WR_DATA(0x08);

ST7789_WR_DATA(0x14);

ST7789_WR_DATA(0x28);

ST7789_WR_DATA(0x33);

ST7789_WR_DATA(0x3F);

ST7789_WR_DATA(0x07);

ST7789_WR_DATA(0x13);

ST7789_WR_DATA(0x14);

ST7789_WR_DATA(0x28);

ST7789_WR_DATA(0x30);

ST7789_WR_REG(0XE1); //Set Gamma

ST7789_WR_DATA(0xD0);

ST7789_WR_DATA(0x05);

ST7789_WR_DATA(0x09);

ST7789_WR_DATA(0x09);

ST7789_WR_DATA(0x08);

ST7789_WR_DATA(0x03);

ST7789_WR_DATA(0x24);

ST7789_WR_DATA(0x32);

ST7789_WR_DATA(0x32);

ST7789_WR_DATA(0x3B);

ST7789_WR_DATA(0x14);

ST7789_WR_DATA(0x13);

ST7789_WR_DATA(0x28);

ST7789_WR_DATA(0x2F);

ST7789_WR_REG(0x21); //反显

ST7789_WR_REG(0x11);

delay_ms(120);      //Delay 120ms

LCD_Clear(BLACK);                        /*先手动清屏再显示,防止花屏显示*/

ST7789_WR_REG(0x29);         //开启显示

}

/******************************************************************************

函数说明:LCD写入数据

入口数据:dat 写入的数据

返回值:  无

******************************************************************************/

void ST7789_WR_DATA(u8 dat)

{

OLED_CS_Clr();

OLED_DC_Set();//写数据

SPI3_ReadWriteByte(dat);

OLED_CS_Set();

}

void ST7789_WR_MDATA(u16 dat)

{

OLED_CS_Clr();

OLED_DC_Set();//写数据

SPI3_ReadWriteByte(dat>>8);

SPI3_ReadWriteByte(dat);

OLED_CS_Set();

}

void LCD_Address_Set(u16 x1,u16 y1,u16 x2,u16 y2)

{

ST7789_WR_REG(0x2a);//列地址设置

ST7789_WR_MDATA(x1);

ST7789_WR_MDATA(x2);

ST7789_WR_REG(0x2b);//行地址设置

ST7789_WR_MDATA(y1);

ST7789_WR_MDATA(y2);

ST7789_WR_REG(0x2c);//储存器写

}

void LCD_Clear(u16 Color)

{

u16 i,j;

LCD_Address_Set(0,0,320,240);

for(i=0;i<240;i++)

{

for (j=0;j<320;j++)

{

ST7789_WR_MDATA(Color);

}

}

}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/125733.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Android多线程研究(4)——从一道面试题说起

    Android多线程研究(4)——从一道面试题说起

    2021年11月28日
    50
  • 有监督学习流程图

    有监督学习流程图

    2022年5月28日
    30
  • lldp 命令「建议收藏」

    lldp 命令「建议收藏」LLDP协议介绍:简单说来,LLDP是一种邻近发现协议。它为以太网网络设备,如交换机、路由器和无线局域网接入点定义了一种标准的方法,使其可以向网络中其他节点公告自身的存在,并保存各个邻近设备的发现信息。例如设备配置和设备识别等详细信息都可以用该协议进行公告。具体来说,LLDP定义了一个通用公告信息集、一个传输公告的协议和一种用来存储所收到的公告信息的方法。要公告自身信息的设备…

    2022年5月28日
    69
  • linux下的C语言编程(总结篇)

    linux下的C语言编程(总结篇)【声明:版权所有,欢迎转载,请勿用于商业用途。联系信箱:feixiaoxing@163.com】在Linux下面关于C语言的内容其实挺多的。不同的人关注的地方也不一样。关注系统设计的人可能更关注整个linux系统的结构;设计驱动的人可能更关注linux驱动的配置和实现;而我在这里所关注的只是linux应用层方面的内容,属于最基础的内容,当然也是最重要的内容。实际上对应于………

    2022年7月26日
    6
  • 视频采用的压缩编码_视频压缩编码存在的冗余信息

    视频采用的压缩编码_视频压缩编码存在的冗余信息1、什么是H.261编码协议        答:H.261是最早出现的视频编码建议,它采用的算法结合了可减少时间冗余的帧间预测和可减少空间冗余的DCT变换的混合编码方法,其输出码率是p×64kbit/s。p取值较小时,只能传清晰度不太高的图像,适合于面对面的电视电话;p取值较大时(如p>6),可以传输清晰度较好的会议电视图像。该标准主要针对ISDN电话线的视频会议,可视电话等,ISDN的

    2025年6月23日
    2
  • DS哈希查找—二次探测再散列

    DS哈希查找—二次探测再散列题目描述定义哈希函数为H(key)=key%11。输入表长(大于、等于11),输入关键字集合,用二次探测再散列构建哈希表,并查找给定关键字。输入测试次数t每组测试数据格式如下:哈希表长m、关键字个数nn个关键字查找次数kk个待查关键字输出对每组测试数据,输出以下信息:构造的哈希表信息,数组中没有关键字的位置输出NULL对k个待查关键字,分别输出:…

    2022年5月15日
    44

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号