STM32系列(HAL库)

您所在的位置:网站首页 彩屏显示屏尺寸 STM32系列(HAL库)

STM32系列(HAL库)

2024-01-13 12:26| 来源: 网络整理| 查看: 265

1.软件准备

(1)编程平台:Keil5

(2)CubeMX

(3)中景园屏幕资料链接:点击跳转        提取码:8888

2.硬件准备

(1)1.44寸TFT彩屏

(2)F1的板子,本例使用经典F103C8T6

(3)ST-link 下载器

(4)杜邦线若干

3.模块资料 (1)模块简介:

        1.44寸彩色液晶显示模块,128x128分辨率,内置ST7735S控制器,可选配触摸屏,高画质,宽视角,支持8080 8-bit 并行接口与3线、4线串行接口,65K/262K真彩色,FPC连接(可选配连接器),2.8V电压,支持横屏或竖屏显示。

(2)模块部分参数

①控制芯片:ST7735S

②接口类型:4线SPI

③工作电压:2.8V——3.3V

④工作电流:15mA

⑤模块引脚数量:8 Pin

⑥模块尺寸:30*46.50*3.45  mm

4.CubeMX配置 (1)芯片选择

 (2)配置RCC、SYS、时钟树

配置RCC

配置SYS

配置时钟树

 (3)配置SPI1

 (4)配置GPIO

  (5)设置路径、生成代码工程  5、Keil5代码 (1)添加文件

 

 

(2)添加头文件路径

  (3)编译一次并跳转错误到lcd.h和lcd_innit.h

两个错误分别来自lcd.h和lcd_innit.h

 (4)lcd.h和lcd_innit.h修改

①将原来的 #include "sys.h"变为如下

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

 ②lcd_innit.h还要改独自改一处

引脚宏定义部分全部用以下代码替代:

 

#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) (5)lcd.c修改

删除#include "delay.h"头文件即可

(6)lcd_inut.c修改

①修改#include "delay.h"头文件为#include "spi.h"

②删除掉此函数的全部内容void LCD_GPIO_Init(void)

③修改写字节函数

①②③总结即如下:

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

④修改延时函数

 

HAL_Delay(100); (7)main.c函数

①添加头文件

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

②while循环前添加:

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

③while循环中添加:

LCD_ShowChinese(0,0,"中景园电子",RED,WHITE,24,0); LCD_ShowString(24,30,"LCD_W:",RED,WHITE,16,0); LCD_ShowIntNum(72,30,LCD_W,3,RED,WHITE,16); LCD_ShowString(24,50,"LCD_H:",RED,WHITE,16,0); LCD_ShowIntNum(72,50,LCD_H,3,RED,WHITE,16); LCD_ShowFloatNum1(20,80,t,4,RED,WHITE,16); t+=0.11; LCD_ShowPicture(80,70,40,40,gImage_1);

6.接线图及效果

   本例程源码下载:点击跳转 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3