电子工程师技术服务社区
公告
登录
|
注册
首页
技术问答
厂商活动
正点原子
板卡试用
资源库
下载
文章
社区
论坛
开发板专区
【STM32F412-DISCO 开发板试用体验】+1.54寸TFT显示屏使用
【STM32F412-DISCO 开发板试用体验】+1.54寸TFT显示屏使用
FLASH
存储器
开发
控制器
显示屏
黄莨元
LV5工程师
| 2017-04-30 14:36:36
浏览量 2331
回复:0
发表新帖
今天来介绍一下
STM32F4MCU
中的
FSMC
的使用以及
STM32F412G-DISCO
开发板上
1.54
寸
TFT
显示屏的使用。:D
(一)硬件平台介绍:
FSMC
简介:
FSMC
可变存储存储控制器,能够与同步或异步存储器、
SDRAM
存储器和
16
位
PC
存储器连接,
STM32F4MCU
的
FMC
接口支持包括
SRAM
、
SDRAM
、
NAND FLASH
、
NOR FLASH
和
PSRAM
等存储器。
由于
TFTLCD
的操作时序和
SRAM
的操作时序基本类似,所以可以通过
FSMC
驱动
TFTLCD
,利用
FMC_NE1
做片选,就可以将
TFT
显示屏当做
SRAM
操作。
TFTLCD
通过
RS
信号来决定传送的数据是数据还是命令,本质上可以理解为一个地址信号,比如我们把
RS
接在
A0
上面,那么当
FMC
控制器写地址
0
的时候,会使得
A0
变为
0
,对
TFTLCD
来说,就是写命令。而
FMC
写地址
1
的时候,
A0
将会变为
1
,对
TFTLCD
来说,就是写数据了。
STM32F412G-DISCO
开发板原理图:
RS:
数据
/
命令选择端接
PF0
CS:
片选信号端接
PD7
RD:
读取数据端
PD4
WR:
写入数据端
PD5
LCD_TE
:原理图接
PG4
,程序上实际用到的是
PG3
LCD_RESET
:复位端接
PD11
D0~D15:
数据线
(二)软件平台介绍:
在
ST
官方的
lcd.h
文件中有
LCD_DrvTypeDef
中结构体的定义,里面的成员变量都是指针函数。
ST
提供的
LCD
驱动函数,在
st7789h2.c
文件中,给出了
LCD
驱动的函数,如下图
通过这个
if
判断
LCD_ID
是否正确,然后调用
ST7789H2_Init
这个函数进行
FSMC
初始化
FMC_BANK1_Init
初始化函数:
(
1
)
SRAM_HandleTypeDef
结构体定义:
Instance
:
FMC_NORSRAM_TypeDef
结构体指针变量,寄存器的基地址
Extended
:
FMC_NORSRAM_EXTENDED_TypeDef
结构体指针变量,扩展模式的寄存器基地址
Init
:
FMC_NORSRAM_InitTypeDef
结构体变量,
SRAM
储存器配置结构体
这三个结构体变量在函数中的赋值如下,其中
NORSRAM
使用了
FSMC_Bank1
,
Init
结构体的赋值如下
(
2
)
FMC_NORSRAM_TimingTypeDef
结构体
:
可以配置数据或地址的建立时间,在
FSMC
初始化函数中建立了两个这样的结构体,配置成了不同的读写时序。
FSMC
读写时序的配置:读写配置成不同的时序
另外,
FMC_BANK1_Init
初始化函数中还调用了两个函数,如下所示:
FMC_BANK1_MspInit
函数:回调函数,主要是进行
FSMC
和
GPIO
的时钟使能以及对
GPIO
口的配置,具体情况看图。
HAL_SRAM_Init
函数:初始化
SRAM
之前定义并赋值了的结构体
具体功能看官方的函数手册给出的函数
另一方面,
ST
提供了一大堆的
TFT
应用函数,供开发者使用,很好,看图
(三)
TFT
显示字符串
接下来用开发板上的
1.54
寸显示屏显示点东西吧
编译下载程序后看看效果:
最后,感谢云汉电子社区和
ST
给予了我这次试用
STM32F412G-DISCO
的机会,下篇文章会介绍一下
STM32F4MCU
的
ADC
的使用,谢谢。:D
今天来介绍一下
STM32F4MCU
中的
FSMC
的使用以及
STM32F412G-DISCO
开发板上
1.54
寸
TFT
显示屏的使用。:D
(一)硬件平台介绍:
FSMC
简介:
FSMC
可变存储存储控制器,能够与同步或异步存储器、
SDRAM
存储器和
16
位
PC
存储器连接,
STM32F4MCU
的
FMC
接口支持包括
SRAM
、
SDRAM
、
NAND FLASH
、
NOR FLASH
和
PSRAM
等存储器。
由于
TFTLCD
的操作时序和
SRAM
的操作时序基本类似,所以可以通过
FSMC
驱动
TFTLCD
,利用
FMC_NE1
做片选,就可以将
TFT
显示屏当做
SRAM
操作。
TFTLCD
通过
RS
信号来决定传送的数据是数据还是命令,本质上可以理解为一个地址信号,比如我们把
RS
接在
A0
上面,那么当
FMC
控制器写地址
0
的时候,会使得
A0
变为
0
,对
TFTLCD
来说,就是写命令。而
FMC
写地址
1
的时候,
A0
将会变为
1
,对
TFTLCD
来说,就是写数据了。
STM32F412G-DISCO
开发板原理图:
RS:
数据
/
命令选择端接
PF0
CS:
片选信号端接
PD7
RD:
读取数据端
PD4
WR:
写入数据端
PD5
LCD_TE
:原理图接
PG4
,程序上实际用到的是
PG3
LCD_RESET
:复位端接
PD11
D0~D15:
数据线
(二)软件平台介绍:
在
ST
官方的
lcd.h
文件中有
LCD_DrvTypeDef
中结构体的定义,里面的成员变量都是指针函数。
ST
提供的
LCD
驱动函数,在
st7789h2.c
文件中,给出了
LCD
驱动的函数,如下图
通过这个
if
判断
LCD_ID
是否正确,然后调用
ST7789H2_Init
这个函数进行
FSMC
初始化
FMC_BANK1_Init
初始化函数:
(
1
)
SRAM_HandleTypeDef
结构体定义:
Instance
:
FMC_NORSRAM_TypeDef
结构体指针变量,寄存器的基地址
Extended
:
FMC_NORSRAM_EXTENDED_TypeDef
结构体指针变量,扩展模式的寄存器基地址
Init
:
FMC_NORSRAM_InitTypeDef
结构体变量,
SRAM
储存器配置结构体
这三个结构体变量在函数中的赋值如下,其中
NORSRAM
使用了
FSMC_Bank1
,
Init
结构体的赋值如下
(
2
)
FMC_NORSRAM_TimingTypeDef
结构体
:
可以配置数据或地址的建立时间,在
FSMC
初始化函数中建立了两个这样的结构体,配置成了不同的读写时序。
FSMC
读写时序的配置:读写配置成不同的时序
另外,
FMC_BANK1_Init
初始化函数中还调用了两个函数,如下所示:
FMC_BANK1_MspInit
函数:回调函数,主要是进行
FSMC
和
GPIO
的时钟使能以及对
GPIO
口的配置,具体情况看图。
HAL_SRAM_Init
函数:初始化
SRAM
之前定义并赋值了的结构体
具体功能看官方的函数手册给出的函数
另一方面,
ST
提供了一大堆的
TFT
应用函数,供开发者使用,很好,看图
(三)
TFT
显示字符串
接下来用开发板上的
1.54
寸显示屏显示点东西吧
编译下载程序后看看效果:
最后,感谢云汉电子社区和
ST
给予了我这次试用
STM32F412G-DISCO
的机会,下篇文章会介绍一下
STM32F4MCU
的
ADC
的使用,谢谢。:D
0
收藏
举报
分享
×
微信分享
扫描二维码分享
qq分享
QQ空间分享
微博分享
我来回复
登录后可评论,请
登录
或
注册
所有回答
数量:
0
×
举报
举报人:
被举报人:黄莨元
*
类型:
请选择类型
问题质量差
垃圾广告信息
偏离社区主题
违规内容
不友善内容
与社区已有问题重复
以上选项都不是
*
详细原因:
取消
提交
x
收藏成功!点击
我的收藏
查看收藏的全部帖子