【蓝桥杯嵌入式】LCD屏的原理图解析与代码实现(第十三届省赛为例)——STM32

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
简介: 【蓝桥杯嵌入式】LCD屏的原理图解析与代码实现(第十三届省赛为例)——STM32

目录


原理图解析

设置STM32CubeMX

配置文件

测试LCD屏函数

实例运用


正文


原理图解析


观察LCD的原理图,LCD的引脚比较多,在下一个步骤设置STM32CubeMX时,最好一一对应地去设置,以免缺漏。

但需要注意的是,在官方文件的实例代码中,已有LCD.c与.h文件,我们可以直接移动到我们的工程文件即可


设置STM32CubeMX


对照原理图将各个引脚设置好即可


配置文件


这一步与上一步选择一个便可。推荐使用官方资料中的文件,因为方便快捷,且不易出错。

在官方资料中找到fonts.h与lcd.h,还有lcd.c三个文件,复制到我们工程文件bsp中。


打开keil5

右击左侧Project中的bsp文件,点击添加文件到bsp中,选中lcd.c添加即可


测试LCD屏函数


我们打开刚刚找lcd.c文件同文件夹中的main.c,部分如下:

  LCD_Init();                //LCD初始化
  /* USER CODE END 2 */
  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  LCD_Clear(Blue);                //LCD清屏
  LCD_SetBackColor(Blue);         //LCD背景颜色
  LCD_SetTextColor(White);        //LCD文本颜色
  LCD_DisplayStringLine(Line0, (uint8_t *)"                    ");
  LCD_DisplayStringLine(Line1, (uint8_t *)"                    ");
  LCD_DisplayStringLine(Line2, (uint8_t *)"      LCD Test      ");
  LCD_DisplayStringLine(Line3, (uint8_t *)"                    ");
  LCD_DisplayStringLine(Line4, (uint8_t *)"                    ");
  LCD_SetBackColor(White);
  LCD_SetTextColor(Blue);
  LCD_DisplayStringLine(Line5, (uint8_t *)"                    ");
  LCD_DisplayStringLine(Line6, (uint8_t *)"       HAL LIB      ");
  LCD_DisplayStringLine(Line7, (uint8_t *)"                    ");
  LCD_DisplayStringLine(Line8, (uint8_t *)"         @80        ");
  LCD_DisplayStringLine(Line9, (uint8_t *)"                    ");

可以看到,LCD的初始化已经是现成的了,不需要我们再去写,所以我们在给LCD初始化时直接调用  “ LCD_Init();  ”  即可。

下面还有三个函数,作用分别如下:

    LCD_Clear(Blue);                LCD清屏,并选择清屏后的颜色
    LCD_SetBackColor(Blue);      LCD背景颜色
 LCD_SetTextColor(White);         LCD文本颜色

最后一个函数就是指定在第几行什么位置显示上面文本了,如:

LCD_DisplayStringLine(Line2, (uint8_t *)"      LCD Test      ");

就是在LCD屏第三行,显示      LCD Test      ,空格也是占格数的哦。

可以将这一部分拷贝到自己的主函数中,然后烧入开发板中去试试,看看有什么效果。


实例运用


我们以第十三届省赛题中的LCD为例子试一试:

题目如下:

写代码时,一定要注意行数与列数必须和题目中一样哦(特别是空格要数对),大家可以先写出来,再看下面的代码,有什么异同欢迎评论哦。

代码实现

int X_shop = 1,Y_shop = 8;
char text[30];
sprintf(text,"        SHOP   ");
LCD_DisplayStringLine(Line1, (uint8_t *)text);
sprintf(text,"     X:%d",X_shop);
LCD_DisplayStringLine(Line3, (uint8_t *)text);
sprintf(text,"     Y:%d",Y_shop);
LCD_DisplayStringLine(Line4, (uint8_t *)text);
相关文章
|
1月前
|
JSON JavaScript 前端开发
蓝桥杯web组赛题解析和杯赛技巧
本文作者是一位自学前端两年半的大一学生,在第十五届蓝桥杯Web组比赛中获得省一和国三。文章详细解析了比赛题纲,涵盖HTML、CSS、JavaScript、Echarts和Vue等技术要点,并分享了备赛技巧和比赛经验。作者强调了多写代码和解题思路的重要性,同时提供了省赛和国赛的具体流程及注意事项。希望对参赛者有所帮助。
75 3
|
6月前
|
Web App开发 传感器 Linux
【嵌入式软件工程师面经】STM32单片机
【嵌入式软件工程师面经】STM32单片机
163 1
|
5月前
|
传感器 编解码 API
【STM32开发入门】温湿度监测系统实战:SPI LCD显示、HAL库应用、GPIO配置、UART中断接收、ADC采集与串口通信全解析
SPI(Serial Peripheral Interface)是一种同步串行通信接口,常用于微控制器与外围设备间的数据传输。SPI LCD是指使用SPI接口与微控制器通信的液晶显示屏。这类LCD通常具有较少的引脚(通常4个:MISO、MOSI、SCK和SS),因此在引脚资源有限的系统中非常有用。通过SPI协议,微控制器可以向LCD发送命令和数据,控制显示内容和模式。
206 0
|
6月前
|
存储 数据安全/隐私保护 芯片
【STM32】详解嵌入式中FLASH闪存的特性和代码示例
【STM32】详解嵌入式中FLASH闪存的特性和代码示例
|
7月前
|
网络安全 数据安全/隐私保护 计算机视觉
2024蓝桥杯网络安全-图片隐写-缺失的数据(0基础也能学会-含代码解释)
2024蓝桥杯网络安全-图片隐写-缺失的数据(0基础也能学会-含代码解释)
|
7月前
|
缓存 网络协议 算法
[蓝桥杯嵌入式]hal库 stm32 PWM的使用(随时修改占空比,随时修改频率)
[蓝桥杯嵌入式]hal库 stm32 PWM的使用(随时修改占空比,随时修改频率)
|
7月前
蓝桥杯真题代码记录(直线
蓝桥杯真题代码记录(直线
46 0
|
7月前
蓝桥杯真题代码记录(卡片
蓝桥杯真题代码记录(卡片
57 0
|
7月前
蓝桥杯真题代码记录(最优清零方案
蓝桥杯真题代码记录(最优清零方案
72 0

推荐镜像

更多
下一篇
DataWorks