STM32HAL库ILI9341_SPI屏的使用教程(使用STM32CubMX)

ILI9341_SPI屏的使用教程目录

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

引言

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

接线

STM32HAL库ILI9341_SPI屏的使用教程(使用STM32CubMX)_第1张图片
STM32HAL库ILI9341_SPI屏的使用教程(使用STM32CubMX)_第2张图片

STM32CubMX配置

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

ILI9341_SPI库函数移植

将ILI9341_SPI程序复制到生成代码的文件夹中
STM32HAL库ILI9341_SPI屏的使用教程(使用STM32CubMX)_第4张图片

在工程中添加ILI9341_SPI库

STM32HAL库ILI9341_SPI屏的使用教程(使用STM32CubMX)_第5张图片STM32HAL库ILI9341_SPI屏的使用教程(使用STM32CubMX)_第6张图片## 代码移植
在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函数的具体使用方法自己看函数说明吧,挺详细的

效果演示:

STM32HAL库ILI9341_SPI屏的使用教程(使用STM32CubMX)_第7张图片

进阶操作

显示中文字符

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

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

STM32HAL库ILI9341_SPI屏的使用教程(使用STM32CubMX)_第8张图片

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

STM32HAL库ILI9341_SPI屏的使用教程(使用STM32CubMX)_第9张图片

设置取模方式生成点阵

STM32HAL库ILI9341_SPI屏的使用教程(使用STM32CubMX)_第10张图片

移植点阵

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

效果演示

STM32HAL库ILI9341_SPI屏的使用教程(使用STM32CubMX)_第12张图片

显示图片

调整图片大小

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

STM32HAL库ILI9341_SPI屏的使用教程(使用STM32CubMX)_第13张图片

图片取模

打开图片取模软件按下图设置给图片取模:
STM32HAL库ILI9341_SPI屏的使用教程(使用STM32CubMX)_第14张图片将生成的.h文件保存到ILI9341_SPI\Photo文件夹中:
STM32HAL库ILI9341_SPI屏的使用教程(使用STM32CubMX)_第15张图片

使用方法

在main.c中包含头文件:

#include "test.h"

在mainz函数中加入函数:

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

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

效果演示

STM32HAL库ILI9341_SPI屏的使用教程(使用STM32CubMX)_第16张图片

你可能感兴趣的:(STM32单片机)