STM32连接TFT-LCD

通过SPI通信在STM32上使用TFT LCD显示器

硬件

软件

介绍

我正在使用的LCD是带有SPI通讯的2.8英寸TFT LCD。 在本文,将集中讨论如何在2.8英寸LCD上显示所需内容。 您可以从以下页面找到有关此LCD的所有详细信息:

因为没有太多关于将这种LCD与STM32板一起使用的说明,所以我将为该LCD编写完整的指南。

首先,此LCD使用SPI作为与MCU的主要通信协议。 对于STM32用户,HAL库已经实现了该协议,这使我们的项目更加容易。 但是,对此协议的一点了解并不会伤害任何人。 SPI是串行外围设备接口的缩写,除了两条数据线之外,它还具有时钟线和选择线,以在要与之通信的设备之间进行选择。

该LCD使用ILI9341作为分辨率为240×320的显示器的单芯片SOC驱动器。 可以在ILI9341的正式文档中找到更多详细信息。 但是最重要的是,我们必须建立一个启动顺序才能使该LCD正常工作。 “开始序列”包括许多其他序列,这些序列也在数据表中定义。 当您向ILI9341发送命令并随后跟进一些参数时,每个序列都会开始。 此序列适用于MCU与ILI9341之间的所有通信。

LCD和STM32F4E-Discovery之间的连接如下。 (这是SPI1的默认引脚。)

连接略

对于此项目,我建议使用STM32的System Workbench进行编码和构建代码。 安装并打开程序后,转到您刚刚下载的源代码,然后双击.cproject文件。 它会在您的IDE中自动打开。 然后通过右键单击刚打开的文件夹(TFTLCD)并选择Build Project来构建程序。 等待它完成并将其上传到板上,方法是右键单击该文件夹,选择“运行方式”,然后单击“ Ac6 STM32C”

为了进一步理解,让我们深入了解源代码。

该项目最重要的库显然是ILI9341_Driver。 该驱动程序是根据lcdwiki.com页面中提供的源代码构建的。 我只选择在许多应用程序中需要使用最多的部分,例如编写字符串,显示图像和绘制符号。 Wiki页面中的另一个库是TOUCH库。 由于对原始库进行了一些调整,因此我从互联网上获得的大多数库均无法正常运行。

要绘制符号甚至显示图像,我们需要该图像或符号的“字节数组”。 作为说明,为了显示来自称为晶体管的游戏的图像,我将该图像的“字节数组”存储在名为transistor.h的文件中。 您可以在下面的链接中找到此文件。 然后,通过在Display文件夹的Display_Picture()函数中添加代码,将图像中的每个像素绘制到LCD。

void Display_Picture()

上面的示例仅用于显示黑白图像。 为了显示彩色图像,我们需要有所不同。 首先,请访问该网站以生成彩色图像阵列。 切记将尺寸更改为320×240并选择65K颜色选项。 因为现在每个像素占用两个字节,所以我们需要一次发送两个字节。 您可以检查Display文件夹中的Display_Color_Picture()函数。

void Display_Color_Picture()

至于触屏功能,其工作方式是屏幕将返回您在屏幕上触摸的位置的x或y坐标的ADC值。 我提供的代码是制造商提供的源代码的简短版本,您可以将其视为触摸屏功能的极其简单的版本。 因此,响应时间非常长。 但是对于不需要使用手写笔绘图的简单应用程序,我认为这很好用。 您只需要在屏幕上按下足够长的时间,直到它更改为其他布局即可。

详情参阅 - 亚图跨际

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值