人若无名 便可潜心练剑.|

hazy1k

园龄:7个月粉丝:14关注:0

2025-02-04 17:44阅读: 5评论: 0推荐: 0

第49章 液晶坐标方向演示

第四十九章 液晶坐标方向演示

1. 硬件设计

参考上一章

2. 软件设计

2.1 编程大纲

  1. LCD驱动

  2. LCD显示不同方向函数

  3. LCD测试函数

2.2 代码分析

2.2.1 LCD轮显不同方向

void LCD_Direction_Show(void) // 用于展示LCD的八种方向模式
{
	uint8_t i = 0;	
	char dispBuff[100];
	// 轮流展示各个方向模式
	for(i = 0; i < 8; i++)
	{	
		LCD_SetFont(&Font16x24);
		LCD_SetColors(RED,BLACK);
		ST7789V_Clear(0,0,LCD_X_LENGTH,LCD_Y_LENGTH);
	    // 其中0、3、5、6 模式适合从左至右显示文字,
	    // 不推荐使用其它模式显示文字	其它模式显示文字会有镜像效果			 
		ST7789V_GramScan(i);
		sprintf(dispBuff,"o%d. X --->",i);
		ST7789V_DispStringLine_EN(LINE(0),dispBuff);	
		sprintf(dispBuff,"o%d.Y|V",i);	
		ST7789V_DispString_EN_YDir(0,0,dispBuff);
		Delay(0xFFFFFF);		
		LCD_Test();
	}
}

本工程的main了函数中主要调用了LCD_Direction_Show函数,该函数主要添加了液晶屏在不同扫描模式下的显示效果演示, 请直接观看程序的演示效果,了解液晶屏的各个扫描模式。注意:其中部分模式显示文字时会因为镜像效果导致无法阅读, 这是由扫描模式决定的,并不是代码错误,只要使用适当的模式即可实现正常的文字显示效果。

2.2.2 LCD测试函数

extern uint16_t lcdid;
void LCD_Test(void)
{
	static uint8_t testCNT = 0;	
	char dispBuff[100];
	testCNT++;	
	LCD_SetFont(&Font8x16);
	LCD_SetColors(RED,BLACK);
  	ST7789V_Clear(0,0,LCD_X_LENGTH,LCD_Y_LENGTH);
  	if(lcdid == LCDID_ST7789V)
  	{
    	ST7789V_DispStringLine_EN(LINE(0),"ST7789V LCD driver");
  	}
	LCD_SetFont(&Font16x24);
	LCD_SetTextColor(GREEN);
	sprintf(dispBuff,"Count : %d ",testCNT);
  	LCD_ClearLine(LINE(1));
	ST7789V_DispStringLine_EN(LINE(1),dispBuff);
	LCD_SetFont(&Font24x32);  
  	LCD_ClearLine(LINE(2));
	LCD_SetTextColor(BLUE);
  	ST7789V_DispStringLine_EN(LINE(2),"Draw line:");
	LCD_SetTextColor(RED);
  	ST7789V_DrawLine(50,170,210,230);  
  	ST7789V_DrawLine(50,200,210,240);
	LCD_SetTextColor(GREEN);
  	ST7789V_DrawLine(100,170,200,230);  
  	ST7789V_DrawLine(200,200,220,240);
	LCD_SetTextColor(BLUE);
  	ST7789V_DrawLine(110,170,110,230);  
  	ST7789V_DrawLine(130,200,220,240);
  	Delay(0xFFFFFF);
  	ST7789V_Clear(0,16*8,LCD_X_LENGTH,LCD_Y_LENGTH-16*8);	
  	LCD_ClearLine(LINE(2));
	LCD_SetTextColor(BLUE);
 	ST7789V_DispStringLine_EN(LINE(2),"Draw Rect:");
	LCD_SetTextColor(RED);
  	ST7789V_DrawRectangle(50,200,100,30,1);
	LCD_SetTextColor(GREEN);
  	ST7789V_DrawRectangle(160,200,20,40,0);
	LCD_SetTextColor(BLUE);
  	ST7789V_DrawRectangle(170,200,50,20,1);
  	Delay(0xFFFFFF);
	ST7789V_Clear(0,16*8,LCD_X_LENGTH,LCD_Y_LENGTH-16*8);
  	LCD_ClearLine(LINE(2));
	LCD_SetTextColor(BLUE);
  	ST7789V_DispStringLine_EN(LINE(2),"Draw Cir:");
	LCD_SetTextColor(RED);
  	ST7789V_DrawCircle(100,200,20,0);
	LCD_SetTextColor(GREEN);
  	ST7789V_DrawCircle(100,200,10,1);
	LCD_SetTextColor(BLUE);
	ST7789V_DrawCircle(140,200,20,0);
  	Delay(0xFFFFFF);
  	ST7789V_Clear(0,16*8,LCD_X_LENGTH,LCD_Y_LENGTH-16*8);
}

2024.9.27 第一次修订,后期不再维护

2025.2.4 简化内容

本文作者:hazy1k

本文链接:https://www.cnblogs.com/hazy1k/p/18698348

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   hazy1k  阅读(5)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起