第49章 液晶坐标方向演示
第四十九章 液晶坐标方向演示
1. 硬件设计
参考上一章
2. 软件设计
2.1 编程大纲
-
LCD驱动
-
LCD显示不同方向函数
-
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 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步