欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 焦点 > 蓝桥杯嵌入式省赛lcd模版

蓝桥杯嵌入式省赛lcd模版

2025/1/31 4:43:25 来源:https://blog.csdn.net/qq_65524926/article/details/145372963  浏览:    关键词:蓝桥杯嵌入式省赛lcd模版

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
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com