嵌入式系统与单片机|技术阅读
登录|注册

您现在的位置是:嵌入式系统与单片机 > 技术阅读 > 基于stm32的h5的spi屏幕调试

基于stm32的h5的spi屏幕调试

本文目标:基于stm32的基础实验

按照本文的描述,应该可以跑通实验并举一反三。

先决条件:装有编译和集成的开发环境,比如:Keil uVision5、STM32CubeMX

使用外设:GPIO、SPI

前言

跟着学习项目的一些笔记记录。

实验目的

基于stm32的h5系列新建一个能使用的工程,进行spi屏幕的点亮。

原理图部分

在这里插入图片描述

所涉及引脚列表如下:

在这里插入图片描述

厂商芯片部分资料

找到屏幕的厂家提供的资料信息,查看对应的芯片手册,部分内容如下:

在这里插入图片描述

去看一下4线的spi是需要如何进行配置的,

在这里插入图片描述

时钟的时序频率:

在这里插入图片描述

最小的时间,都可以达到1/7+7ns = 71.4M,所以我们配置时钟时,可以配置跟这个数相近。

写操作的时序如下:

在这里插入图片描述

读操作的时序如下:

在这里插入图片描述

搭建工程

启动原先的工程,进入STM32CubeMX 的配置,根据对应的引脚进行配置SPI

spi配置

在这里插入图片描述

io配置

配置一下LCD屏幕的其中引脚,同时把SPI的io速度提高一些,如下:

在这里插入图片描述

时钟配置界面

配置时钟,调高 CPU 频率:

在这里插入图片描述

工程选项卡

在这里插入图片描述

指定代码生成方法,如下

在这里插入图片描述

使用keil打开工程,编译工程,一切都是ok

在这里插入图片描述

添加驱动

代码成功生成,添加厂家提供的驱动,如下:

在这里插入图片描述

添加头文件路径

在这里插入图片描述

添加显示的汉字

使用字模软件生成一些中文,用于屏幕展示,把生成的文字添加一下所索引,然后拷贝到对应的数组中。

在这里插入图片描述在这里插入图片描述

添加显示的图片

在这里插入图片描述

使用相应的代码来显示内容

在main.c进行编程,简简单单的下写下一些LCD屏幕的代码,测试一下。

int main(void){ /* USER CODE BEGIN 1 */
/* USER CODE END 1 */
/* MCU Configuration--------------------------------------------------------*/
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */ HAL_Init();
/* USER CODE BEGIN Init */
/* USER CODE END Init */
/* Configure the system clock */ SystemClock_Config();
/* USER CODE BEGIN SysInit */
/* USER CODE END SysInit */
/* Initialize all configured peripherals */ MX_GPIO_Init(); MX_SPI2_Init(); /* USER CODE BEGIN 2 */
LCD_Init(1); /* 初始化LCD为横屏 */ Draw_Init(); /* 初始化绘制系统 */ Draw_Clear(0); /* 清屏 */ Draw_String(0, 0, "www.stm32.com\r\nwww.keil.com", 0x0000ff00, 0); /* 绘制字符串 */ Draw_ChineseFont(0, 40, "欢迎关注独处东汉", 0xff0000, 0); /* 绘制汉字 */ extern const unsigned char gImage_test[43208]; Draw_Picture(0, 100, gImage_test); /* 绘制图片 */ Draw_Circle(60, 250, 50, 0xffffff); /* 画圆 */ Draw_Rectangle(180, 200, 280, 300, 0xffffff); /* 画矩形 */
/* USER CODE END 2 */
/* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) { HAL_GPIO_TogglePin(LED_GPIO_Port, LED_Pin); HAL_Delay(500); /* USER CODE END WHILE */
/* USER CODE BEGIN 3 */ } /* USER CODE END 3 */}

刷入板子,LCD上的屏幕能正常点亮,同时有一些api函数可以直接调用,可以正常显示汉字,显示图片等信息

实验现象

在这里插入图片描述

本文中使用的测试工程

https://download.csdn.net/download/weixin_44317448/89067623