初学STM32,目标是点亮一个lcd液晶模块并能正常显示。
一、lcd液晶模块
1、前期根据设计需求,确定液晶选型如下:
①LCD液晶模块关键参数
项目 | 内容 | 单位 |
---|---|---|
视角 | 6点 | / |
LCD模块尺寸 | 78.0(宽)* 70.0(高)* 12.1(厚,最大值) | mm |
LCD视区尺寸 | 62.0(宽)* 44.0(高) | mm |
LCD点阵方式 | 128 * 64 点阵 | / |
点尺寸 | 0.39(宽)* 0.55(高) | mm |
点间距 | 0.44(宽)* 0.60(高) | mm |
LCD duty | 1/64 | / |
LCD偏压 | 1/9 | / |
LCD控制器 | ST7567(COG) | / |
*设置接口方式 | 8080时序方式 / 6800时序方式 / 串行时序方式 | / |
供电电源 | 2.7~5.0 | V |
预期寿命 | 50,000 | Hours |
②液晶模块原理框图
③LCD液晶模块时序图
略。(虽然该液晶模块支持8080、6800和串行三种时序模式,在后续编程时选用8080时序并行方式)
2、LCD液晶配置
根据液晶厂家提供的说明手册,液晶模块管脚配置如下:
Pin No | Symbol | Level | Function |
1 | /CS | L | 芯片选通端,低有效 |
2 | /RES | L | 复位输入端,低有效 |
3 | A0 | H/L | 命令数据选择端,高电平:数据,低电平:命令 |
4 | /WR(R/W) | L | 80时序时作为写信号;68时序时是读或写信号选择端,低电平时写数据,高电平时读数据;串口时须接VDD |
5 | /RD(E) | L | 80时序时作为读信号;68时序时作为使能信号,下降沿锁存;串口时须接VDD |
6 | DB0 | H/L | 并行模式时,DB0~DB7 |
7 | DB1 | H/L | 串行模式时,DB0~DB5没有作用,未用到引脚须接VDD |
8 | DB2 | H/L | |
9 | DB3 | H/L | |
10 | DB4 | H/L | |
11 | DB5 | H/L | |
12 | DB6(SCL) | H/L | DB6(SCL):串行模式时钟端 |
13 | DB7(SI) | H/L | DB7(SI):串行模式数据端 |
14 | VDD | 2.7~5.0V | 模块逻辑电源输入端 |
15 | VSS | 0V | 逻辑电源地 |
16 | C86 | H/L | 高电平:68时序模式;低电平:80时序模式 |
17 | P/S | H/L | 高电平:并行模式;低电平:串行模式 |
18 | LED+ | 3.3V | 背光电源正端 |
二、STM32CubeMX配置驱动芯片建立工程
1、驱动芯片
利用手头现有的STM32F4XX开发板,针对液晶模块配置驱动管脚。
2、STM32CubeMX新建工程配置
①打开STM32CubeMX软件,点击New Project,新建工程。
②在弹出的新的界面选择对应的MCU。
按照下图中标的序号,最终选择对应的STM32F407ZE芯片建立工程。
③保存工程文件
在建立好工程以后,先在电脑本地保存当前的工程文件。保存时输入对应的工程名称,并新建一个工程文件夹,将当前工程保存至该工程文件夹下,如下图所示。
④引脚配置
根据上面LCD液晶模块的管脚配置,对驱动芯片的引脚进行资源分配,我建立的资源分配如下:
a)配置好的引脚如下:
b)随后进行时钟配置
外部晶振根据开发板上的8MHz设置8MHz,主频根据STM32F407ZE芯片的主频168MHz,设置最大主频168MHz。
c)随后进行GPIO管脚配置
(根据LCD液晶模块的接口命令,大多是低电平有效的,在此将GPIO口默认拉高,具体后面在程序中再通过写高电平还是低电平来驱动。)
⑤生成报告和工程代码
a)在Projec中的Project Setting的Project中设置工程名称、路径和工具链(IDE)选择,在此我选择的是IAR EWARM。
b)在Projec中的Project Setting的Code Generator中设置生成独立的.c文件和.h头文件,如下图配置所示。
c)最后依次分别点击下图中的①和②两个按钮,生成报告和工程代码。
d)利用IAR EWARM打开工程,编译工程,Build Output信息框中无任何错误即可,至此基础工程变建立好了。
下一步在工程中添加应用程序。