蓝桥杯嵌入式-lcd的使用(高亮显示)

目录

目录

前言

1.stm32cubemx设置

2.代码实现

高亮显示



前言

        在蓝桥杯比赛中一般lcd显示屏和led灯是要一起使用的,目前先不考虑这个问题,后面拿出来单独考虑,按键的高亮显示也是非常重要的。

1.stm32cubemx设置

        这里使能的是PC端口,也是板载led的引脚

 系统时钟的设置,debug设置

将.c文件和.h文件添加到工程中

 

 在mdk中添加.c文件(记得在main.c中include .h文件)

2.代码实现

打开lcd_hal.h文件

列举一些常用的函数

void LCD_Init(void);//lcd所有引脚的初始化
void LCD_SetTextColor(vu16 Color);//字体颜色设置
void LCD_SetBackColor(vu16 Color);//背景颜色设置
void LCD_ClearLine(u8 Line);//清除某一行
void LCD_Clear(u16 Color);//使用某种颜色清屏

void LCD_DisplayChar(u8 Line, u16 Column, u8 Ascii);//在对应行列显示一个字符
void LCD_DisplayStringLine(u8 Line, u8 *ptr);//在某一行显示字符串

int main(void)
{
  /* USER CODE BEGIN 1 */
	uint8_t str[10]="1234";
	uint8_t i=1;
  /* USER CODE END 1 */

  /* MCU Configuration--------------------------------------------------------*/

  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();

  /* USER CODE BEGIN Init */

  /* USER CODE END Init */

  /* Configure the system clock */
  SystemClock_Config();

  /* USER CODE BEGIN SysInit */

  /* USER CODE END SysInit */

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  /* USER CODE BEGIN 2 */
	LCD_Init();
	LCD_Clear(Black);
	LCD_SetTextColor(White);//×ÖÌåΪ°×É«
	LCD_SetBackColor(Black);//±³¾°ÎªºÚÉ«
	
	//在某一行显示
	LCD_DisplayStringLine(Line2,(uint8_t*)str );
	
	//320-(列*16)注意参数是字符类型
	LCD_DisplayChar(Line4, 320-(10*16), i+'0');
	
	//格式化输出
	sprintf((char*)str,"   va:%d  ",i);
	LCD_DisplayStringLine(Line6,(uint8_t*)str );
	
  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
		
    /* USER CODE END WHILE */
    /* USER CODE BEGIN 3 */
  }
  /* USER CODE END 3 */
}

高亮显示

        我的理解就是将你所想要的字符背景颜色更改成与你设定的背景不同的颜色,这样就可以凸显出,你所想要表现出的数据

下面是一段例子,帮助大家理解

void lcd_w()
{
    sprintf((char*)str1,"  NO:%d ",NO);
    LCD_DisplayStringLine(Line2,str1);
    if(keyan==0)
        {
            sprintf((char*)str2,"      %d%d : %d%d : %d%d ",h/10,h%10, m/10, m%10,s/10,s%10);
            LCD_DisplayStringLine(Line3,str2);
        }
        if(keyan==1)
        {
          LCD_SetBackColor(White);
            LCD_DisplayChar(Line3, 320-(16*16), s/10+48);
            LCD_DisplayChar(Line3, 320-(17*16), s%10+48);
            LCD_SetBackColor(Yellow);
                
            LCD_SetBackColor(Yellow);
            LCD_DisplayChar(Line3, 320-(6*16), h/10+48);
            LCD_DisplayChar(Line3, 320-(7*16), h%10+48);
            LCD_SetBackColor(White);
        }
        if(keyan==2)
        {
            LCD_SetBackColor(White);
            LCD_DisplayChar(Line3, 320-(6*16), h/10+48);
            LCD_DisplayChar(Line3, 320-(7*16), h%10+48);
            LCD_SetBackColor(Yellow);
            
            LCD_SetBackColor(Yellow);
            LCD_DisplayChar(Line3, 320-(11*16), m/10+48);
            LCD_DisplayChar(Line3, 320-(12*16), m%10+48);
            LCD_SetBackColor(White);
        }
        if(keyan==3)
        {
            LCD_SetBackColor(White);
            LCD_DisplayChar(Line3, 320-(11*16), m/10+48);
            LCD_DisplayChar(Line3, 320-(12*16), m%10+48);
            LCD_SetBackColor(Yellow);
            
            LCD_SetBackColor(Yellow);
            LCD_DisplayChar(Line3, 320-(16*16), s/10+48);
            LCD_DisplayChar(Line3, 320-(17*16), s%10+48);
            LCD_SetBackColor(White);
        }
}

df749356e6628d79281565d6d617c7e6

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值