蓝桥杯嵌入式省赛lcd模版

ops/2025/2/1 22:57:51/

LCD原理图

 

可以参考和使用官方的参考例程

 配置完引脚后点击GENERATE CODE即可无需其他操作

将这两个头文件复制到 

在给的案例路径下将lcd.c也复制到bsp路径下面 

#include "my_main.h"
uint8_t led_sta=0x10;
char text[30];
void LED_Disp(uint8_t dsLED)
{HAL_GPIO_WritePin(GPIOC,GPIO_PIN_All,GPIO_PIN_SET);//所有LED熄灭(l小写)HAL_GPIO_WritePin(GPIOC,dsLED<<8,GPIO_PIN_RESET);//左移8位:控制C8-15引脚,值为1的点亮HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_SET);//开锁存器HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_RESET);//关锁存器
}
void setup()
{LED_Disp(0x00);//关掉所有LEDLCD_Init();//LCD初始化LCD_Clear(Black);LCD_SetBackColor(Black);LCD_SetTextColor(White);
}void loop()
{/*     按键操作演示     */if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_0)==GPIO_PIN_RESET){HAL_Delay(10);if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_0)==GPIO_PIN_RESET){led_sta=(led_sta&0xfe)|0x01;led_sta=(led_sta&0xfd)|0x00;LED_Disp(led_sta);			}}if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_1)==GPIO_PIN_RESET){HAL_Delay(10);if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_1)==GPIO_PIN_RESET){led_sta=(led_sta&0xfd)|0x02;led_sta=(led_sta&0xfe)|0x00;LED_Disp(led_sta);	//180°翻转屏幕LCD_Clear(Black);REG_932X_Init1();}}/*     LCD演示     */sprintf(text,"    number:%x  ",led_sta);LCD_DisplayStringLine(Line8,(uint8_t *)text);//局部刷新LCD_SetBackColor(Yellow);sprintf(text,"    T:%d                ",30);LCD_DisplayStringLine(Line5,(uint8_t *)text);//局部刷新LCD_SetBackColor(Black);sprintf(text,"    X:A01  ");LCD_DisplayStringLine(Line6,(uint8_t *)text);//局部刷新
}

 lcd翻转屏幕---只改变了一行代码

//180°翻转屏幕
void REG_932X_Init1(void)
{LCD_WriteReg(R227, 0x3008);   // Set internal timingLCD_WriteReg(R231, 0x0012); // Set internal timingLCD_WriteReg(R239, 0x1231);   // Set internal timing//LCD_WriteReg(R1, 0x0000);   // set SS and SM bit		  //0x0100  0000  0001LCD_WriteReg(R1, 0x0100); LCD_WriteReg(R2, 0x0700);   // set 1 line inversionLCD_WriteReg(R3, 0x1030);     // set GRAM write direction and BGR=1.LCD_WriteReg(R4, 0x0000);     // Resize registerLCD_WriteReg(R8, 0x0207);     // set the back porch and front porchLCD_WriteReg(R9, 0x0000);     // set non-display area refresh cycle ISC[3:0]LCD_WriteReg(R10, 0x0000);    // FMARK functionLCD_WriteReg(R12, 0x0000);  // RGB interface settingLCD_WriteReg(R13, 0x0000);    // Frame marker PositionLCD_WriteReg(R15, 0x0000);  // RGB interface polarity/**************Power On sequence ****************/LCD_WriteReg(R16, 0x0000);    // SAP, BT[3:0], AP, DSTB, SLP, STBLCD_WriteReg(R17, 0x0007);    // DC1[2:0], DC0[2:0], VC[2:0]LCD_WriteReg(R18, 0x0000);  // VREG1OUT voltageLCD_WriteReg(R19, 0x0000);    // VDV[4:0] for VCOM amplitude//	Delay_Ms(200);                    // Delay 200 MS , Dis-charge capacitor power voltageHAL_Delay(200);LCD_WriteReg(R16, 0x1690);    // SAP, BT[3:0], AP, DSTB, SLP, STBLCD_WriteReg(R17, 0x0227);  // R11H=0x0221 at VCI=3.3V, DC1[2:0], DC0[2:0], VC[2:0]//	Delay_Ms(50);      // Delay 50msHAL_Delay(50);LCD_WriteReg(R18, 0x001D);  // External reference voltage= Vci;//	Delay_Ms(50);      // Delay 50msHAL_Delay(50);LCD_WriteReg(R19, 0x0800);  // R13H=1D00 when R12H=009D;VDV[4:0] for VCOM amplitudeLCD_WriteReg(R41, 0x0014);  // R29H=0013 when R12H=009D;VCM[5:0] for VCOMHLCD_WriteReg(R43, 0x000B);    // Frame Rate = 96Hz//	Delay_Ms(50);      // Delay 50msHAL_Delay(50);LCD_WriteReg(R32, 0x0000);  // GRAM horizontal AddressLCD_WriteReg(R33, 0x0000);  // GRAM Vertical Address/* ----------- Adjust the Gamma Curve ---------- */LCD_WriteReg(R48, 0x0007);LCD_WriteReg(R49, 0x0707);LCD_WriteReg(R50, 0x0006);LCD_WriteReg(R53, 0x0704);LCD_WriteReg(R54, 0x1F04);LCD_WriteReg(R55, 0x0004);LCD_WriteReg(R56, 0x0000);LCD_WriteReg(R57, 0x0706);LCD_WriteReg(R60, 0x0701);LCD_WriteReg(R61, 0x000F);/* ------------------ Set GRAM area --------------- */LCD_WriteReg(R80, 0x0000);    // Horizontal GRAM Start AddressLCD_WriteReg(R81, 0x00EF);    // Horizontal GRAM End AddressLCD_WriteReg(R82, 0x0000);  // Vertical GRAM Start AddressLCD_WriteReg(R83, 0x013F);  // Vertical GRAM Start Address//LCD_WriteReg(R96, 0x2700);  // Gate Scan Line		  0xA700  //0010  1010LCD_WriteReg(R96, 0xA700);LCD_WriteReg(R97, 0x0001);  // NDL,VLE, REVLCD_WriteReg(R106, 0x0000); // set scrolling line/* -------------- Partial Display Control --------- */LCD_WriteReg(R128, 0x0000);LCD_WriteReg(R129, 0x0000);LCD_WriteReg(R130, 0x0000);LCD_WriteReg(R131, 0x0000);LCD_WriteReg(R132, 0x0000);LCD_WriteReg(R133, 0x0000);/* -------------- Panel Control ------------------- */LCD_WriteReg(R144, 0x0010);LCD_WriteReg(R146, 0x0000);LCD_WriteReg(R147, 0x0003);LCD_WriteReg(R149, 0x0110);LCD_WriteReg(R151, 0x0000);LCD_WriteReg(R152, 0x0000);/* Set GRAM write direction and BGR = 1 *//* I/D=01 (Horizontal : increment, Vertical : decrement) *//* AM=1 (address is updated in vertical writing direction) */LCD_WriteReg(R3, 0x01018);    //0x1018LCD_WriteReg(R7, 0x0173);   // 262K color and display ON
}


http://www.ppmy.cn/ops/154877.html

相关文章

设计模式Python版 原型模式

文章目录 前言一、原型模式二、原型模式示例三、原型管理器 前言 GOF设计模式分三大类&#xff1a; 创建型模式&#xff1a;关注对象的创建过程&#xff0c;包括单例模式、简单工厂模式、工厂方法模式、抽象工厂模式、原型模式和建造者模式。结构型模式&#xff1a;关注类和对…

5 长度和距离计算模块(length.rs)

这段代码定义了一个泛型结构体 Length<T, Unit>&#xff0c;用于表示一维长度&#xff0c;其中 T 表示长度的数值类型&#xff0c;而 Unit 是一个编译时检查单位一致性的占位符类型&#xff0c;不会用于运行时表示长度的值。这个设计允许开发者在编译阶段确保不同单位之间…

【C++高并发服务器WebServer】-8:终端、进程组、会话、守护进程

本文目录 一、终端二、进程组三、会话四、进程组、会话、控制终端之间的关系五、守护进程六、创建守护进程的流程 一、终端 在 UNIX 系统中&#xff0c;用户通过终端登录系统后得到一个shell 进程&#xff0c;这个终端成为 shell 进程的控制终端(Controlling Terminal)&#x…

舵机型号与识别

舵机型号繁多&#xff0c;不同品牌和制造商有不同的命名规则。常见的舵机品牌包括 Futaba、Hitec、Tower Pro、Savox、JX Servo 等。以下是舵机型号的常见识别方法以及一些典型的型号示例&#xff1a; 一、舵机型号的识别方法 型号命名规则&#xff1a; 舵机型号通常由字母和数…

vue3项目中编写less

css,less&#xff0c;sass文件一般写在vue3的asset目录下 1.引入依赖 npm install -D less2.定义less文件 3.在其他文件中引入less文件 如在app.vue文件中引入&#xff0c; 可使用绝对路径也可以使用相对路径

2025数学建模美赛|C题成品论文|第一问

1.模型建立与求解 1.1问题求解思路 为了准确预测奥运会奖牌分布情况&#xff0c;尤其是金牌数和奖牌总数&#xff0c;本研究采用以下步骤&#xff1a; &#xff08;1&#xff09;数据处理与特征工程 从提供的奥运会奖牌历史数据中提取核心信息。 补充外部特征&#xff0c;…

网络工程师 (8)存储管理

一、页式存储基本原理 &#xff08;一&#xff09;内存划分 页式存储首先将内存物理空间划分成大小相等的存储块&#xff0c;这些块通常被称为“页帧”或“物理页”。每个页帧的大小是固定的&#xff0c;例如常见的页帧大小有4KB、8KB等&#xff0c;这个大小由操作系统决定。同…

【项目集成Husky】

项目集成Husky 安装初始化 Husky在.husky → pre-commit文件中添加想要执行的命令 安装 使用 Husky 可以帮助你在 Git 钩子中运行脚本&#xff0c;例如在提交代码前运行测试或格式化代码pnpm add --save-dev husky初始化 Husky npx husky init这会在项目根目录下创建一个 .hu…