STM32(HAL库)驱动st7789LCD屏幕(7引脚240*240)

这篇具有很好参考价值的文章主要介绍了STM32(HAL库)驱动st7789LCD屏幕(7引脚240*240)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1、简介

2、CubeMX初始化配置

2.1 基础配置

2.1.1 SYS配置

 2.1.2 RCC配置

2.2 屏幕引脚配置

2.3 项目生成

 3、KEIL端程序整合

3.1 LCD驱动添加

3.2 函数修改

3.2.1 lcd.h修改

3.2.2 lcd_innit.h 修改

 3.2.3 lcd.c修改

 3.2.4 lcd_inut.c修改

 3.3 主函数代码

3.3.1 添加头文件

3.3.2 LCD进行初始化

3.3.3 while中添加如下代码

4、硬件连接

5、 效果展示

1、简介

屏幕厂家提供的都是标准库,网上找了找没看到好用的HAL库屏幕驱动,因此本文对HAL库驱动TFT屏幕进行详细讲解。

2、CubeMX初始化配置

2.1 基础配置

2.1.1 SYS配置

STM32(HAL库)驱动st7789LCD屏幕(7引脚240*240),嵌入式小项目,单片机,嵌入式硬件

 2.1.2 RCC配置

STM32(HAL库)驱动st7789LCD屏幕(7引脚240*240),嵌入式小项目,单片机,嵌入式硬件

2.2 屏幕引脚配置

STM32(HAL库)驱动st7789LCD屏幕(7引脚240*240),嵌入式小项目,单片机,嵌入式硬件

STM32(HAL库)驱动st7789LCD屏幕(7引脚240*240),嵌入式小项目,单片机,嵌入式硬件

2.3 项目生成

STM32(HAL库)驱动st7789LCD屏幕(7引脚240*240),嵌入式小项目,单片机,嵌入式硬件

STM32(HAL库)驱动st7789LCD屏幕(7引脚240*240),嵌入式小项目,单片机,嵌入式硬件

 3、KEIL端程序整合

3.1 LCD驱动添加

首先打开厂家提供的便准库文件找到LCD驱动,驱动链接如下:

LCD_7引脚240x240 https://www.aliyundrive.com/s/EKDhHV6dKqx 点击链接保存,或者复制本段内容,打开「阿里云盘」APP ,无需下载极速在线查看,视频原画倍速播放。

首先在Core/Src目录下,添加lcd.c,lcd_init.c如下图所示:

STM32(HAL库)驱动st7789LCD屏幕(7引脚240*240),嵌入式小项目,单片机,嵌入式硬件

STM32(HAL库)驱动st7789LCD屏幕(7引脚240*240),嵌入式小项目,单片机,嵌入式硬件

 接着在Core/Inc目录下,添加对应的.h文件如下图所示:

 STM32(HAL库)驱动st7789LCD屏幕(7引脚240*240),嵌入式小项目,单片机,嵌入式硬件

 接着对驱动进行添加如下图所示: 

STM32(HAL库)驱动st7789LCD屏幕(7引脚240*240),嵌入式小项目,单片机,嵌入式硬件

3.2 函数修改

3.2.1 lcd.h修改

将原来lcd.h中 #include "sys.h"删除,并且添加如下代码:

#include "main.h"
#define u8 uint8_t
#define u16 uint16_t
#define u32 uint32_t

STM32(HAL库)驱动st7789LCD屏幕(7引脚240*240),嵌入式小项目,单片机,嵌入式硬件

3.2.2 lcd_init.h 修改

 首先也是将原来llcd_innit.h中 #include "sys.h"删除,并且添加如下代码:

#include "main.h"
#define u8 uint8_t
#define u16 uint16_t
#define u32 uint32_t

STM32(HAL库)驱动st7789LCD屏幕(7引脚240*240),嵌入式小项目,单片机,嵌入式硬件

接着将LCD端口定义函数用如下代码替换:

#define LCD_RES_Clr()  HAL_GPIO_WritePin(TFT_RES_GPIO_Port,TFT_RES_Pin, GPIO_PIN_RESET)//RES
#define LCD_RES_Set()  HAL_GPIO_WritePin(TFT_RES_GPIO_Port,TFT_RES_Pin, GPIO_PIN_SET)
 
#define LCD_DC_Clr()   HAL_GPIO_WritePin(TFT_DC_GPIO_Port,TFT_DC_Pin, GPIO_PIN_RESET)//DC
#define LCD_DC_Set()   HAL_GPIO_WritePin(TFT_DC_GPIO_Port,TFT_DC_Pin, GPIO_PIN_SET)
 		     
#define LCD_CS_Clr()   HAL_GPIO_WritePin(TFT_CS_GPIO_Port,TFT_CS_Pin, GPIO_PIN_RESET)//CS
#define LCD_CS_Set()   HAL_GPIO_WritePin(TFT_CS_GPIO_Port,TFT_CS_Pin, GPIO_PIN_SET)
 
#define LCD_BLK_Clr()  HAL_GPIO_WritePin(TFT_BL_GPIO_Port,TFT_BL_Pin, GPIO_PIN_RESET)//BLK
#define LCD_BLK_Set()  HAL_GPIO_WritePin(TFT_BL_GPIO_Port,TFT_BL_Pin, GPIO_PIN_SET)

STM32(HAL库)驱动st7789LCD屏幕(7引脚240*240),嵌入式小项目,单片机,嵌入式硬件

 3.2.3 lcd.c修改

将头文件#include "delay.h"删除

 3.2.4 lcd_inIt.c修改

1、将头文件#include "delay.h"删除

2、添加头文件#include "spi.h"

3、将 LCD_GPIO_Init(void)函数内全部注释,如下图所示:

STM32(HAL库)驱动st7789LCD屏幕(7引脚240*240),嵌入式小项目,单片机,嵌入式硬件

4、将LCD_Writ_Bus(u8 dat) )函数用以下代码替换,如下图所示:

LCD_CS_Clr();
HAL_SPI_Transmit(&hspi1,&dat,1, 1000);  
LCD_CS_Set();

STM32(HAL库)驱动st7789LCD屏幕(7引脚240*240),嵌入式小项目,单片机,嵌入式硬件

 5、延时函数替换

CTRL+F进行整体替换

HAL_Delay

STM32(HAL库)驱动st7789LCD屏幕(7引脚240*240),嵌入式小项目,单片机,嵌入式硬件

 3.3 主函数代码

3.3.1 添加头文件

#include "lcd_init.h"
#include "lcd.h"
#include "pic.h"

3.3.2 LCD进行初始化

float t=0;
u8 i,j;
LCD_Init();//LCD初始化
LCD_Fill(0,0,LCD_W,LCD_H,WHITE);

 添加位置如下图所示:

STM32(HAL库)驱动st7789LCD屏幕(7引脚240*240),嵌入式小项目,单片机,嵌入式硬件

3.3.3 while中添加如下代码

LCD_ShowChinese(0,0,"中景园电子",RED,WHITE,32,0);
		LCD_ShowString(0,40,"LCD_W:",RED,WHITE,16,0);
		LCD_ShowIntNum(48,40,LCD_W,3,RED,WHITE,16);
		LCD_ShowString(80,40,"LCD_H:",RED,WHITE,16,0);
		LCD_ShowIntNum(128,40,LCD_H,3,RED,WHITE,16);
		LCD_ShowString(80,40,"LCD_H:",RED,WHITE,16,0);
		LCD_ShowString(0,70,"Increaseing Nun:",RED,WHITE,16,0);
		LCD_ShowFloatNum1(128,70,t,4,RED,WHITE,16);
		t+=0.11;
		for(j=0;j<3;j++)
		{
			for(i=0;i<6;i++)
			{
				LCD_ShowPicture(40*i,120+j*40,40,40,gImage_1);
			}
		}

4、硬件连接

VCC----3.3V

GND---GND

A1 ---- BL/LED

A2 ---- RES/RST

A3 ---- DC/RS

A4 ---- CS(悬空)

A5 ---- SCLK

A7 ---- MOSI/SDA

5、 效果展示

STM32(HAL库)驱动st7789LCD屏幕(7引脚240*240),嵌入式小项目,单片机,嵌入式硬件

上文如有错误,恳请各位大佬指正。文章来源地址https://www.toymoban.com/news/detail-605322.html

到了这里,关于STM32(HAL库)驱动st7789LCD屏幕(7引脚240*240)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【STM32CubeIDE】STM32F103硬件SPI驱动1.8寸TFT LCD128X160 ST7735S屏幕

    ✨虽然STM32CubeIDE也是基于HAL库,但是还是不能直接转Keil MDK工程,本驱动案例从GitHub下载来的,原始工程使用的是较老版本的STM32CubeIDE配置的,没法在继续在新版本上程序配置,工程只是做了初始化配置。程序并不能直接被点亮,重新配置了lcd初始化函数以及复位函数后,才

    2024年02月12日
    浏览(40)
  • stm32 hal库硬件spi(软件spi)驱动1.8寸tft—lcd屏幕

    屏幕是嵌入式开发中的一个重要的部分,cdsn上有许多解释原理的,还有很多是采用正点原子的屏幕来驱动的,对于刚刚入门不久的我们可能没有资金去购买较为昂贵的屏幕。而对于底层原理我们暂时也不必了解的那么深入,能点亮屏幕就是我们最大的快乐。 除了中景园的资

    2024年02月03日
    浏览(52)
  • STM32F1基于STM32CubeMX配置硬件SPI驱动1.8寸TFT LCD128X160 ST7735S屏幕

    📌相关篇《【STM32CubeIDE】STM32F103硬件SPI驱动1.8寸TFT LCD128X160 ST7735S屏幕》 ✨驱动效果就不做演示了,和上面的相关篇一样,主要是为了方便使用MDK Keil开发的使用。所以花了点时间从上面的工程当中做了分离,重新使用STM32CubeMX配置一个方便二次开发移植使用和配置的工程。本

    2024年02月03日
    浏览(49)
  • STM32-基本知识梳理10-FSMC控制ST7789V-LCD液晶显示屏

    一、ST7789V-LCD液晶显示 1,一种计算机的I/O设备,即输入输出设备; 2,数据传递结构,光线的传递通过偏光片进行调整,最终传递到滤光片上,进而不同RGB数据点,即像素点; 3, LCD显示器的关键参数 ①像素:显示器的像素指它成像最小的点 ②分辨率:像素点的个数的乘积

    2024年02月12日
    浏览(47)
  • STM32的HAL库SPI驱动AD7788/7789连续转换

    在项目中需要使用高精度的ADC采集电压信号且没有高速需求,而STM32F103RCT6自带的ADC位数较低,故选择了一款24bit的低速ADC芯片AD7789,根据它的引脚与时序特性,复用了STM32的SPI模块来驱动。整个过程踩了一些坑,在此记录分享一下,表述适合初学者食用。 stm32cubemx的使用不做

    2024年02月19日
    浏览(48)
  • linux驱动开发 ST7789 LCD驱动移植(I.MX6ULL平台)

    前言 I.MX6ULL的板子未选配RGB的屏幕,无法在板子上进行GUI的开发调试,不过手头上有块控制器为ST7789V3的LCD屏幕(1.3inch),通过简易接线后可以很方便进行驱动的移植 如有异议,欢迎留言指正 ST7789 LCD控制器 ST7789是一款单芯片TFT-LCD控制器,支持并口与SPI通信方式 特性 控制器支

    2023年04月09日
    浏览(83)
  • ESP8266+TFT显示屏(ST7789 240*240)

    ❤ 操作系统: windows 10 x64 ❤ IDE: Arduino1.8.15 ❤ 运行库1: TFT_eSPI ❤ 运行库2: ESP8266 ❤ 开发板硬件: ESP8266-CH340  ,  ST7789-240*240-TFT显示屏 ESP8266 ST7789 备注 G GND 3V VCC D5 SCL D7 SDA D4 RES D3 DC 3-1 安装库# 打开Arduino,进入: 工具 --   管理库... ,搜索: TFT_eSPI ,选择版本,点击安

    2024年02月06日
    浏览(53)
  • STM32驱动4寸ST7796S LCD-TFT屏

    屏幕驱动芯片ST7796S最大支持320*480分辨率的屏幕,显存GRAM达345600字节,支持8/9/16/18/24位并口数据总线,还支持3/4线制SPI通信。每一个像素点RGB显示的颜色可达65K/262K/16.7M钟,像素点地址设置按照行列的顺序进行,递增递减方向由扫描方式决定,显示方法按照先设置地址再设置

    2024年02月03日
    浏览(45)
  • 【rust/esp32】初识slint ui框架并在st7789 lcd上显示

    esp32版本:s3 运行环境:no-std 开发环境:wsl2 LCD模块:ST7789V2 240*280 LCD Slint版本:master分支 github地址:这里 官网 为啥不用 lvgl ? 只能说rust的生态还是不太行,lvgl的rust binding似乎还在开发中,已经有仓库了,但是还在开发中。 slint 目前比较完善,但是相关资料也少。 反正已

    2024年02月05日
    浏览(50)
  • STM32驱动ST7735彩色屏幕(任意分辨率),驱动不了你来打我

    驱动方式 硬件SPI 适用STM32型号 带SPI的任意型号,驱动不了你来打我(内心OS:HAL真好) 特别提醒 以下内容介绍如何使用HAL方式驱动ST7735,所以默认 你已经了解并且会使用STM32CubeMX软件 (如果没有接触过的话建议先安装尝试一下再继续以下内容,不然有种囫囵吞枣的意思了)

    2023年04月15日
    浏览(65)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包