行业资讯

stm32液晶屏(stm32液晶屏触摸屏界面设计)

stm32液晶屏(stm32液晶屏触摸屏界面设计)

对于对液晶的操作是一个嵌入式从业者的基本功。我们还是以基于 ST7567 驱动芯片的 128*64 像素 FSTN(格式化超扭曲向列型) 液晶为例,来讲解液晶的基本知识点。

12864 点阵液晶的扫描方式

目前网上面关于 12864点阵液晶的描述资料五花八门, 但是大多数资料阅读之后, 大家还是会发现毫无头绪。 我们先看一下12864 液晶的模拟电子格点:

stm32液晶屏(stm32液晶屏触摸屏界面设计)

在这 128*64 个晶格上面, 纵向的 64 格被分成了 8 个部分, 每个部分有 8 个晶格, 我们把这里称为 12864 的页地址, 从上到下分别为第 0 页 ~ 第 7 页。 接下来横向的被称为“Column” 即为“列” 这个含义,而 12864 顾名思义即有 128 列, 从左到右分别为第 0 列 ~ 第 127 列。

所以我们每次在写入 LCD 的时候, 分成三步来做:

  • 寻找到需要写入的页地址, 用写命令函数去找

  • 寻找到固定页的列地址, 用写命令函数去找

  • 以 8 为的形式写入某一页

对第 0 页的第 8 列写了一个数值 0x22

我们的步骤如下:

  • 写页地址: 写命令(0xb0)

  • 写列地址的高 4 位: 写命令(0x10)

  • 写列地址的低 4 位: 写命令(0x08)

  • 写入数值: 些数据(0x22)

为啥是这个数据可以自己去查datasheet,一定要养成这个习惯

完成以上操作后, 我们的液晶上面就会留下两个黑点:

stm32液晶屏(stm32液晶屏触摸屏界面设计)

每次写入的数值, 即为一页数据的 8 位二进制数, 且低位在前, 高位在后。

代码也很简单了:

stm32液晶屏(stm32液晶屏触摸屏界面设计)

注意:这个教程和上一个教程是有联系的。这是一个小的系列教程。

这么写完之后, 估计令你崩溃的事情就会发生了, 整个屏幕出现了花屏, 你根本就分不清哪几个点是你自己写的, 其实那是因为这个屏幕开始时, 是不会自动清屏的, 因此一些非常随机的黑点就会出现在这个屏幕上面。 因此, 我们需要先进行清屏, 就是对所有页, 所有列写入“0x00”。

写0x00怎么写呢?有需要的可以评论留言。就不在这里整体说了。其实也简单,自己可以先摸索下。

写入的数据该如何编排呢

看0x22的图:

stm32液晶屏(stm32液晶屏触摸屏界面设计)

我们可以看出, 写入的数据 DATA, 就是将相应页, 相应列的 8 个像素设置成 DATA(D[7..0]) 。 如果正常模式, “1” 为黑色, “0” 为不黑。 反转模式就相反。

如何来写一个字

讲到这里, 我想对于这种页寻址的 LCD 已经讲的非常透透彻了。 接着我们来讲讲如何来写一个字, 假设我们要写“0” , 我们先填充液晶格点看看图,如下:

stm32液晶屏(stm32液晶屏触摸屏界面设计)

那我们构建这个字的方式可以表示为: 第 0 页第 0 列为 0x7e, 第 0 页第 1列为 0x81, 第 0 页第 2 列为 0x81, 第 0 页第 3 列为 0x81, 第 0 页第 4 列为 0x7e。 现在可以在第 0 页开始的前 5 列显示“0” 了。

stm32液晶屏(stm32液晶屏触摸屏界面设计)

虽然现在可以显示出来了, 其实也很不错了。但是作为程序员, 写一个“0” 就需要这么多代码, 这是非常不可取的,老板要是看到你写一个0就写了个这,你基本上就可以下课了。

相关推荐

手机

邹总:15818552076

微信
微信
分享本页
返回顶部