LCD模块 | LCD屏基本配置,LCD函数,LCD界面切换,LCD高亮显示屏幕

LCD配置

Scr中的lcd.c

Inc中的fonts.h和lcd.h

lcd.h可以不放在keil中 但在main.c中需要lcd.h

 点亮屏幕的函数

LCD_Init();//为什么需要先初始化

LCD_Clear(Red);

为什么需要先初始化?

在调用 LCD_Clear(Red) 之前,必须先调用 LCD_Init(),原因如下:

(1) 硬件未初始化时无法操作
  • 如果 LCD 控制器和驱动芯片没有初始化,硬件处于未知状态,无法响应任何操作。

  • 例如,如果没有配置 GPIO 引脚的功能,LCD 屏幕无法接收数据;如果没有配置时钟信号,LCD 屏幕无法正常显示。

(2) 显存未分配时无法写入
  • LCD_Clear(Red) 的作用是将整个屏幕填充为红色,这需要向显存中写入颜色数据。

  • 如果显存没有分配或未正确配置,写入操作会导致程序崩溃或硬件错误。

(3) 驱动芯片未配置时无法显示
  • LCD 驱动芯片需要接收特定的初始化命令序列,才能正确解析显存中的数据并显示。

  • 如果没有初始化,LCD 屏幕可能无法显示任何内容,或者显示异常(如花屏、闪烁等)。

 LCD函数

用 const 定义的变量是只读的,不能被修改。

LCD_DisplayStringLine

可以在LCD第一行Line0显示出“ Hello World”

sprintf

 

防止溢出

如果字符串长度超过了LCD的显示宽度,可能会导致显示异常或数据溢出。通过定义一个固定大小的缓冲区(例如char buf[21],20个字符加上一个终止符\0),可以确保字符串不会超出LCD的显示范围。

sprintf的第二个参数是格式化后的字符串,咱们用一个时间变量来测试(why???)

在显示屏上显示按键按下的次数

 

啊啊啊啊啊啊啊啊!终于知道这里一开始怎么count不会因为按键加1,屏幕上变化了!

大家复制工程的时候,如果不是复制的key按键相关的工程,一定要到图形化界面CubeMx中把key的引脚配置好。

LCD换页

注意:每次换页的清屏操作写在哪里,不能写在下面图片的空格处,不然会出现每个页面都是闪烁出现。

 

LCD高亮显示

 hang的代码一开始不是很会写。用三个if-else就可以突出某行了

LCD_SetBackColor();

LCD_SetTextColor();

第三个按钮,决定那一行加1

 优化一下:

因为uint8_t最大为255,所以最大就是三位数

所以用%03d,然后前面加空格,后面加空格 让它居中。

 注意:

每次换页的时候,最好再设置一下下面这个地方!但是不知道为啥

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值