STM32-基本知识梳理10-FSMC控制ST7789V-LCD液晶显示屏

本文详细介绍了如何使用STM32的FSMC外设来控制ST7789V LCD液晶显示屏,包括FSMC的初始化、时序设置、GPIO配置、LCD模块初始化以及RGB888到RGB565的数据转换。通过初始化GPIO端口、FSMC和LCD,然后设置发送和接收数据的模块,最终实现矩形图形的显示,为LCD驱动打下基础。
摘要由CSDN通过智能技术生成

5-FSMC初始化结构体

关于FSMC只介绍关键参数:

①FSMC结构初始化主要分为两个模块,时序初始化、整体FSMC初始化

1- FSMC结构初始化主要分为两个模块,时序初始化、整体FSMC初始化

配置好时序结构体后,再在整体初始化结构体中,进行地址传递,一起进行初始化

以上,fsmc对应LCD显示屏控制的核心逻辑已经介绍完毕,下面进入代码模块


三、代码模块

1,整体逻辑

①初始化对应GPIO端口

②初始化FSMC

③初始化LCD模块

④初始化发送数据、发送指令、接受数据模块

⑤显示窗口开辟

⑥RGB888数据转化RGB565函数建立

⑦矩形图形显示

ps:能够显示一个矩形,基本等于可以进行LCD驱动了,至于显示斜直线、圆等图形全部都是数学关系的转化;

2,正式进入代码模块

①初始化对应GPIO端口

FSMC模块引脚全部设置为复用推挽输出;

背光模块和复位不属于FSMC,属于GPIO模块,直接推挽输出;

void lcd_gpio_config(void)
{
	//开启GPIO时钟
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD
	                      |RCC_APB2Periph_GPIOE|RCC_APB2Periph_GPIOG,ENABLE);
	
	//配置GPIO
	//先配置FSMC数据信号线 D0-D15 ,复用推挽
	GPIO_InitTypeDef GPIO_InitStruct;
	GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;
	GPIO_InitStruct.GPIO_Mode=GPIO_Mode_AF_PP;
	
	GPIO_InitStruct.GPIO_Pin=GPIO_Pin_14;
	GPIO_Init( GPIOD, &GPIO_InitStruct);//D0
	
	GPIO_InitStruct.GPIO_Pin=GPIO_Pin_15;
	GPIO_Init( GPIOD, &GPIO_InitStruct);//D1
	
	GPIO_InitStruct.GPIO_Pin=GPIO_Pin_0;
	GPIO_Init( GPIOD, &GPIO_InitStruct);//D2
	
	GPIO_InitStruct.GPIO_Pin=GPIO_Pin_1;
	GPIO_Init( GPIOD, &GPIO_InitStruct);//D3
	
	GPIO_InitStruct.GPIO_Pin=GPIO_Pin_7;
	GPIO_Init( GPIOE, &GPIO_InitStruct);//D4
	
	GPIO_InitStruct.GPIO_Pin=GPIO_Pin_8;
	GPIO_Init( GPIOE, &GPIO_InitStruct);//D5
	
	GPIO_InitStruct.GPIO_Pin=GPIO_Pin_9;
	GPIO_Init( GPIOE, &GPIO_InitStruct);//D6
	
	GPIO_InitStruct.GPIO_Pin=GPIO_Pin_10;
	GPIO_Init( GPIOE, &GPIO_InitStruct);//D7
	
	GPIO_InitStruct.GPIO_Pin=GPIO_Pin_11;
	GPIO_Init( GPIOE, &GPIO_InitStruct);//D8
	
	GPIO_InitStruct.GPIO_Pin=GPIO_Pin_12;
	GPIO_Init( GPIOE, &GPIO_InitStruct);//D9
	
	GPIO_InitStruct.GPIO_Pin=GPIO_Pin_13;
	GPIO_Init( GPIOE, &GPIO_InitStruct);//D10
	
	GPIO_InitStruct.GPIO_Pin=GPIO_Pin_14;
	GPIO_Init( GPIOE, &GPIO_InitStruct);//D11
	
	GPIO_InitStruct.GPIO_Pin=GPIO_Pin_15;
	GPIO_Init( GPIOE, &GPIO_InitStruct);//D12
	
	GPIO_InitStruct.GPIO_Pin=GPIO_Pin_8;
	GPIO_Init( GPIOD, &GPIO_InitStruct);//D13
	
	GPIO_InitStruct.GPIO_Pin=GPIO_Pin_9;
	GPIO_Init( GPIOD, &GPIO_InitStruct);//D14
	
	GPIO_InitStruct.GPIO_Pin=GPIO_Pin_10;
	GPIO_Init( GPIOD, &GPIO_InitStruct);//D15
	
	
	//配置相应FSMC控制引脚,复用推挽模式
//	 * 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值