ILI9341_SPI屏的使用教程目录

  • 引言
  • 接线
  • STM32CubMX配置
  • ILI9341_SPI库函数移植
  • 在工程中添加ILI9341_SPI库
  • 显示字符串例程
  • 效果演示:
  • 进阶操作
  • 显示中文字符
  • 打开取字模软件,选择取模方式: 横向取模、 字节不倒叙
  • 输入要显示的中文后按下Ctrl+Enter
  • 设置取模方式生成点阵
  • 移植点阵
  • 效果演示
  • 显示图片
  • 调整图片大小
  • 图片取模
  • 使用方法
  • 效果演示


引言

最近我们在做STM32单片机的实训,实训中用到了ILI9341_SPI屏,但是老师给的标准库的spi库,虽然标准库我也会一点,但是因为种种原因(比如可能是因为懒)我在使用STM32CubMX,因此我试着把ILI9341_SPI的标准库程序移植到了HAL库上。

接线

ESP32C3 adruino i2c测试_取模


ESP32C3 adruino i2c测试_单片机_02

STM32CubMX配置

如果不使用STM32CubMX可以跳过直接看移植过程

先创建一个STM32CubMX(芯片我用的STM32F103C6)工程,创建工程、设置时钟、设置IDE、设置分.c/.h输出,前面的我就不演示了,设置完后再将ILI9341_SPI屏用到的几个引脚为输出模式(如下图),引脚连接在前面,然后生成代码。这里我的引脚最大输出速度设置的是高,但是在后面显示图片的时候发现图片乱码,检查后发现因为我设置的40MHZ的内部时钟,而引脚最大输出速度设置为高好像是50MHZ,改为Medium,就可以正常显示了,这里根据自己设置的时钟主频来选择引脚最大输出速度

ESP32C3 adruino i2c测试_嵌入式_03

ILI9341_SPI库函数移植

将ILI9341_SPI程序复制到生成代码的文件夹中

ESP32C3 adruino i2c测试_#include_04

在工程中添加ILI9341_SPI库

ESP32C3 adruino i2c测试_#include_05

ESP32C3 adruino i2c测试_取模_06

## 代码移植

在main.c中添加:

#include "sys.h"
#include "lcd.h"
#include "spi.h"
#include "GUI.h"

在main.h中添加:

#include "stdio.h"
#include "stdlib.h"
#include "string.h"

#define delay_ms(x) HAL_Delay(x) 
#define Delay_ms(x) HAL_Delay(x)

编译一下程序就算好了

显示字符串例程

在main函数中添加

LCD_Init();
Show_Str(0,16,BLACK,0XFFFF,(u8 *)"666666",16,1);

Show_Str函数的具体使用方法自己看函数说明吧,挺详细的

效果演示:

ESP32C3 adruino i2c测试_单片机_07

进阶操作

显示中文字符

想要在LCD屏上默认只能显示英文字符和数字,想要显示中文要在取字模软件中取字模添加到font.h中

打开取字模软件,选择取模方式: 横向取模、 字节不倒叙

ESP32C3 adruino i2c测试_#include_08

输入要显示的中文后按下Ctrl+Enter

ESP32C3 adruino i2c测试_嵌入式_09

设置取模方式生成点阵

ESP32C3 adruino i2c测试_嵌入式_10

移植点阵

将生成的点阵放到font.h中,可以再GUI.c中找到该头文件跳转进去,找到tfont16(可能是因为生成的是1616的点阵,下面还有tfont24、tfont32可能对应的2424的点阵和32*32的点阵,这个我没用到,有大佬知道可以在评论区说一下)数组将点阵按照下列格式放入该数组:

ESP32C3 adruino i2c测试_#include_11

效果演示

ESP32C3 adruino i2c测试_单片机_12

显示图片

调整图片大小

使用画图打开要显示的图片,按像素重新调整大小为合适尺寸(不要超过屏幕大小)

ESP32C3 adruino i2c测试_stm32_13

图片取模

打开图片取模软件按下图设置给图片取模:

ESP32C3 adruino i2c测试_#include_14

将生成的.h文件保存到ILI9341_SPI\Photo文件夹中:

ESP32C3 adruino i2c测试_stm32_15

使用方法

在main.c中包含头文件:

#include "test.h"

在mainz函数中加入函数:

Paint_Bmp(0,48,100,87,gImage_test); //图片左上角坐标(0,48),图片大小100*87,test.h中的数组gImage_test

编译后如果没有出错就完成了

效果演示

ESP32C3 adruino i2c测试_#include_16