打印
[活动专区]

【N32G430开发板试用】+ST7789V液晶屏点亮显示(软件模拟SPI)

[复制链接]
707|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wuxiubo|  楼主 | 2022-8-13 19:56 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

@安小芯

今天先尝试下先移植显示ST7789V液晶显示,还是先建立我们自己的库,后期添加啥也方便。


我选择的这款就是来自之前稚晖君的一个开源项目买剩下的,焊接式所以需要自己改动下,做个小板子即可。

void LCD_GPIO_Init(void)



{



       GPIO_InitTypeDef  GPIO_InitStructure;



      RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);    //使能A端口时钟



       GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4;   



      GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;         //推挽输出



       GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//速度50MHz



      GPIO_Init(GPIOA, &GPIO_InitStructure);      //初始化GPIOA



      GPIO_SetBits(GPIOA,GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4);



}

软件模拟的相对简单很多,需要搞定延时函数和GPIO初始化即可。

      LCD_GPIO_Init();//初始化GPIO



      



       LCD_RES_Clr();//复位



       delay_ms(100);



       LCD_RES_Set();



       delay_ms(100);



      



       LCD_BLK_Set();//打开背光



       delay_ms(100);



      



       //************* Start Initial Sequence **********//



       LCD_WR_REG(0x11); //Sleep out



       delay_ms(120);              //Delay 120ms



       //************* Start Initial Sequence **********//



       LCD_WR_REG(0x36);



       if(USE_HORIZONTAL==0)LCD_WR_DATA8(0x00);



       else if(USE_HORIZONTAL==1)LCD_WR_DATA8(0xC0);



       else if(USE_HORIZONTAL==2)LCD_WR_DATA8(0x70);



       else LCD_WR_DATA8(0xA0);







       LCD_WR_REG(0x3A);



       LCD_WR_DATA8(0x05);







       LCD_WR_REG(0xB2);



       LCD_WR_DATA8(0x0C);



       LCD_WR_DATA8(0x0C);



       LCD_WR_DATA8(0x00);



       LCD_WR_DATA8(0x33);



       LCD_WR_DATA8(0x33);







       LCD_WR_REG(0xB7);



       LCD_WR_DATA8(0x35);  







       LCD_WR_REG(0xBB);



       LCD_WR_DATA8(0x19);







       LCD_WR_REG(0xC0);



       LCD_WR_DATA8(0x2C);







       LCD_WR_REG(0xC2);



       LCD_WR_DATA8(0x01);







       LCD_WR_REG(0xC3);



       LCD_WR_DATA8(0x12);   







       LCD_WR_REG(0xC4);



       LCD_WR_DATA8(0x20);  







       LCD_WR_REG(0xC6);



       LCD_WR_DATA8(0x0F);   







       LCD_WR_REG(0xD0);



       LCD_WR_DATA8(0xA4);



       LCD_WR_DATA8(0xA1);







       LCD_WR_REG(0xE0);



       LCD_WR_DATA8(0xD0);



       LCD_WR_DATA8(0x04);



       LCD_WR_DATA8(0x0D);



       LCD_WR_DATA8(0x11);



       LCD_WR_DATA8(0x13);



       LCD_WR_DATA8(0x2B);



       LCD_WR_DATA8(0x3F);



       LCD_WR_DATA8(0x54);



       LCD_WR_DATA8(0x4C);



       LCD_WR_DATA8(0x18);



       LCD_WR_DATA8(0x0D);



       LCD_WR_DATA8(0x0B);



       LCD_WR_DATA8(0x1F);



       LCD_WR_DATA8(0x23);







       LCD_WR_REG(0xE1);



       LCD_WR_DATA8(0xD0);



       LCD_WR_DATA8(0x04);



       LCD_WR_DATA8(0x0C);



       LCD_WR_DATA8(0x11);



       LCD_WR_DATA8(0x13);



       LCD_WR_DATA8(0x2C);



       LCD_WR_DATA8(0x3F);



       LCD_WR_DATA8(0x44);



       LCD_WR_DATA8(0x51);



       LCD_WR_DATA8(0x2F);



       LCD_WR_DATA8(0x1F);



       LCD_WR_DATA8(0x1F);



       LCD_WR_DATA8(0x20);



       LCD_WR_DATA8(0x23);



       LCD_WR_REG(0x21);







       LCD_WR_REG(0x29);



}


初始胡基本就是配置屏幕内置芯片ST7789V这个芯片参数,通过发送多个数据到其寄存器中即可完成初始化了。


在其驱动中我们可以显示各种内容,这里初始化之后显示的就是一些文字,数字,图片这些。还可以绘制一些图形,如矩形,正方形,圆形等等。



后续我们再添加一些功能,显示一些东西在这个液晶屏上。

使用特权

评论回复
沙发
1988020566| | 2022-12-3 12:06 | 只看该作者
这个的驱动速度很快的吗?              

使用特权

评论回复
板凳
chenci2013| | 2022-12-3 12:54 | 只看该作者
彩色屏幕的用来显示还是比较棒的。

使用特权

评论回复
地板
phoenixwhite| | 2022-12-6 16:51 | 只看该作者
ST7789V是否支持5V的输入电压呢?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

65

主题

249

帖子

2

粉丝