STM32基础教程(CubeMX)—— LCD显示

LCD显示

LCD显示原理

原理

  无论是什么显示器,其原理都是对数量众多的灯泡进行点亮和熄灭的操作。又由于灯泡的数量过于巨大,不可能用微控制器直接控制,因此需要借助控制器进行控制,对于LCD来说就是借助LCD控制器进行控制。

LCD控制器

  LCD控制器是辅助进行LCD控制的一个集成电路,例如ILI9341。
  使用LCD控制器的一般步骤,先初始化LCD控制器,对LCD控制器发送数据。数据发送的方式是8080并行通信,包括控制接口、数据接口和供电即触摸接口。使用8080并行通信需要遵循8080的通信时序,例如片选、命令、数据等操作。
&emps; 实际使用时不需要懂8080的通讯规则,而是使用一个类似翻译工具的功能——FSMC。

FSMC(Flexible Static Memory Controller可变静态存储控制器)

  FSMC是帮助我们完成格式化通信的外设。
  FSMC可以让STM32与SRAM、ROM、PSRAM、NOR Flash等存储器直接连接完成通信。

LCD显示库函数

  即使已经解决了数据传输的问题,仍然需要自己编写控制LCD每个点的函数,编程还是十分繁琐,因此,显示器几乎都有厂家制作好的库函数供用户直接调用进行信息的显示。
  德飞莱开发板有以前学长写好的LCD显示函数可供使用,只需要将这些库函数添加到工程里面即可。

CubeMX的操作

FSMC的设置
  1. 在"Pinout & Configuration"界面下,左侧选择下拉菜单"Connectivity",下拉菜单中选择"FSMC",中间的界面里出现对应的窗口。这些都是FSMC,控制LED实际上是控制SRAM,所以选择前四个下拉菜单中的任意一个。
  2. 在下拉菜单中,对照原理图,“Chip Select”片选选择原理图中的片选引脚;“Memory type”存储器类型中选择LCD Interface;“LCD Register Select”要对应原理图中LCD的RS引脚,即命令/数据标志位,作用是选择输入命令还是数据;“Date”数据选项,就是一次发送的数据位数,越高发送数据越快,一般来说和LCD的位数对应即可,值得一提的是,STM32中多个FSMC的数据口都是共用的,通过片选区别。

Keil5的操作

添加LCD库文件
  1. 在用户文件夹上双击可以添加文件,将文件放到工程文件夹中,并添加到工程里。
  2. 菜单栏点击“闪存”、“配置闪存工具”,弹出的窗口中点击c/c++,在“Include Paths”中将你添加的文件所在的路径添加进去。这个操作只适用于这一个工程,而且你也可以参考其他的路径添加相对路径。
使用LCD库文件
  1. 在"main.c"文件中包含头文件"stdio.h"、“lcd.h"和"math.h”。
  2. 打开液晶演示器的背光,德飞莱开发板使用的是PB0,高电平有效。
  3. 初始化LCD,函数是"lcd.c"文件中的LCD_Init函数。应当注意,函数的调用必须在函数中进行,另外CubeMX项目中初始化应该放在MX_FSMC_Init();这条语句之后,也就是用户代码输入的第二个区域。
  4. 使用LCD进行显示,这里就请自行发挥,在"lcd.c"文件中寻找你所需要的函数。另外,LCD显示屏Y值的取值范围大约为0到305。

猜你喜欢

转载自blog.csdn.net/weixin_43718316/article/details/107985584