STM32+CubeMax驱动1.3寸TFT屏幕

本文详细介绍了如何使用STM32F103C8T6微控制器驱动1.3寸TFT屏幕,包括硬件接线、HAL库驱动代码的魔改、CubeMX配置、代码编写及屏幕操作函数的使用。通过步骤式指导,帮助开发者成功点亮并操作屏幕显示各种内容。
摘要由CSDN通过智能技术生成

1.3寸TFT屏幕的使用

使用STM32F103C8T6驱动1.3寸TFT屏幕的驱动代码用法

这里使用的开发板和屏幕都来自某宝店家大越创新

1. 硬件接线

开发板上已经预留了屏幕的位置,直接将屏幕插上去就好了

IMG_20220817_162314

发现如果用usb线插电脑供电的话并不能够带动屏幕,而直接用ST-Link供电就能够带动屏幕

供电正常的话屏幕背光是常亮的,没烧程序的时候屏幕可能是黑色的不是图片中的白色

如果开发板上焊的是排母,屏幕的排针插到排母里面可能会松动,导致屏幕显示出现问题。如果发现屏幕点不亮或者显示不正常可以用手把屏幕按稳了再reset单片机,一般都能正常显示

2. 驱动代码准备

店家发过来的例程是用标准库写的,我自己魔改成了HAL库的,便于用CubeMax进行开发

魔改的内容大致如下

  1. 把延时全部换成了HAL_Delay()函数
  2. 改用HAL的SPI函数和GPIO函数

魔改后的驱动代码点击这里下载

3. CubeMax配置

我们需要按照例程中给出的引脚号进行配置

image-20220817152401713

3.1 基础配置

配置晶振、时钟树等等,在这里不细说

3.2 SPI配置

开发板上对应的SPI引脚是C8T6的SPI2,所以我们打开SPI2,SPI配置全都默认

image-20220817152227132

3.2 GPIO配置

我们还需要使能3个GPIO口,这里全部配置成输出模式即可,GPIO的配置也默认

image-20220817153631785

3.3 生成工程

现在必须的引脚就都配置完成了,其他的比如串口就按需开启即可

下一步生成工程,命名为tfttest,开始写代码

image-20220817152754085

注意名字和路径不要有中文和空格,否则可能会出现问题

我使用的IDE是CLion,所以IDE就选择了SW4STM32,使用Keil的朋友照常选MDK-ARM就好

注意:我魔改例程的时候偷懒把延时全部换成了HAL_Delay()函数,这东西有个bug,如果在定时器中断中使用HAL_Delay()将会导致程序卡死,解决方法是修改系统定时器的优先级,使其高于定时器的优先级

image-20220817153912494

👆就是默认优先级为15的那个中断,如果使用了定时器中断,记得使系统定时器的优先级高于定时器中断的优先级

4. 代码编写

4.1 例程移植

下载并打开上面链接里的资料,找到单独的驱动代码文件夹

image-20220817153136949

GBK_LibDrive里面是屏幕PCB中存储字库芯片的驱动代码,用来读取汉字字库的,LCD130H里面是屏幕的驱动代码

我们把这两个文件夹都放到自己工程的Core文件夹中,并在IDE中添加进工程,记得添加.h文件的路径

image-20220817152738820

编译没有问题就说明移植ok了

4.2 点亮屏幕

在main.h中包括相关头文件

image-20220817154222073

在while前面初始化屏幕

image-20220817154616195

现在就可以在while里面用商家写好的示例菜单函数了

image-20220817154710655

如果一切正常,屏幕就会循环播放测试内容了

IMG_20220817_162453

4.3 相关函数的使用

4.3.1 显示英文和数字

调用下面的函数就好,参数都是什么可以直接看lcd.c中的注释

24B的字号会比16B的字号大

这个屏幕的分辨率是240*240,注意不要超出范围

BLACK是黑色,是在lcd.h中的宏定义

	Draw_Font24B(16,40,BLACK,"lalal");//显示英文字母
    Draw_Font24B(16,80,BLACK,"134567890");//显示数字

	Draw_Font16B(16,100,BLACK,"lalal");//显示英文字母
    Draw_Font16B(16,140,BLACK,"134567890");//显示数字
4.3.2 显示变量
uint8_t  num_show = 12;
LCD_ShowNum(16,160,num_show,2,16,BLACK);//变量显示
4.3.3 清屏

这里的清屏是指将屏幕用某种颜色覆盖

LCD_Clear(GRAY0); //清屏
4.3.4 显示汉字

在显示汉字的时候我遇到一个玄学问题,就是显示汉字的函数放在lcd.c中跑正常,放在main.c中跑输出的汉字就乱码了,不知道啥问题,索性就在lcd.h中写一个my_test()函数,在里面调用汉字输出函数,然后再main.c中用my_test()输出汉字

void my_test(void)//放在lcd.c中
{
    Draw_Font24B(48,32,MAGENTA,"大大大大大大");
}

my_test();//在main.c中调用
4.3.5 其他

其他内容比如画线画圆在lcd.c中都有现成的函数,这里不一一列举

如果想显示图片,使用Dis_Picture.c中的函数即可,要显示的图片是存放在Picture.c中的,由于C8T6FLASH装不下图片信息,我这里就不测试了

Show_Picture()函数里面的gImage_LCD280就是Picture.c中存放图片信息数组的名称

image-20220817161118812

如果想新增颜色,自己找好4位16进制表示的颜色,加到lcd.h中就好了

### 回答1: 屏幕驱动1.44TFT屏幕,需要使用STM32的硬件SPI接口。首先,需要连接TFT屏幕的引脚到STM32的SPI接口引脚上。然后,需要编写SPI驱动程序来控制TFT屏幕的显示。 在编写SPI驱动程序时,需要设置SPI接口的时钟频率、数据位数、传输模式等参数。然后,可以使用SPI接口发送命令和数据到TFT屏幕,以控制其显示内容。 需要注意的是,不同型号的TFT屏幕可能有不同的控制方式和命令格式,因此需要根据具体的TFT屏幕型号来编写相应的驱动程序。 ### 回答2: STM32是一款主流的单片机,而1.44TFT是一款常用的LCD显示屏,通过硬件SPI来驱动TFT可以在STM32的应用中起到重要作用。下面我们来探讨一下STM32硬件SPI驱动1.44TFT的具体过程。 1. 硬件准备 首先,我们需要准备好TFT显示屏和STM32单片机TFT显示屏一般会有一个标准的SPI接口,具体接口可以参考显示屏的规格书。STM32单片机有多个SPI接口,我们需要确认使用哪个接口,并在程序中进行相应的配置。 2. 硬件连接 将TFT显示屏的SPI接口与STM32单片机的对应SPI接口连接起来,通常需要连接SCK、MISO、MOSI、CS、DC、RESET等信号。 3. 编写驱动程序 接下来,我们需要编写STM32硬件SPI驱动1.44TFT的程序。首先需要进行SPI初始化配置,包括时钟、数据大小、模式等的设置。对于1.44TFT,一般涉及到的操作有初始化、设置像素、设置画面方向、显示字符串等。 4. 调试测试 编写完程序之后,需要进行调试测试。可以通过串口打印调试信息,查看TFT是否能够正常显示。同时也需要注意常见的调试错误,例如信号连接不良、SPI时钟频率设置错误等。 综上所述,STM32硬件SPI驱动1.44TFT需要进行硬件准备、硬件连接、编写驱动程序以及调试测试等步骤。只有在各个步骤都正确无误的情况下,TFT才能够正常显示,驱动程序也才能够正常执行。因此需要仔细对待每一个步骤,确保程序的顺利实现。 ### 回答3: STM32是一种常用的微控制器,常常用于控制多种电子设备。硬件SPI驱动可以实现电子设备的串行数据传输,因此STM32硬件SPI驱动1.44TFT就成为了一个常见的应用场景。 1.44TFT是一种基于微处理器的彩色液晶显示屏,广泛用于电子设备中显示文本、图像和动画等。它与STM32通过硬件SPI进行数据传输,有以下几个关键问题需要注意: 1. 通信协议的设置。STM32硬件SPI支持多种通信协议,必须根据TFT的通信协议来设置SPI通信模式。通常情况下,TFT使用的是SPI模式3,采用极性为1和相位为1的通信方式。 2. 数据传输的格式。TFT数据传输格式通常是字节序传输,需要将发送的数据按照特定的格式进行打包,然后通过SPI通信口发送到TFT。此时可以使用STM32的SPI数据寄存器,以并行的方式实现数据的快速传输。 3. 时钟频率的设置。SPI通信的时钟频率影响数据传输速度,需要根据TFT的工作时钟频率和数据传输要求设置SPI时钟频率。在设置时钟频率时需要注意SPI时序的要求,以确保数据传输的正确性。 基于上述问题,STM32硬件SPI驱动1.44TFT需要实现以下几个步骤: 1. 初始化SPI通信模式。根据TFT的通信协议,设置SPI通信模式为模式3,并设置极性和相位。 2. 打包数据格式。根据TFT的数据传输格式,将需要传输的数据按照特定的格式打包,以便能够快速地发送给TFT。 3. 设置时钟频率。根据TFT的时钟频率和数据传输要求,设置SPI的时钟频率。 4. 启动SPI数据传输。使用STM32的SPI数据寄存器,通过硬件SPI实现数据的快速传输。 总之,STM32硬件SPI驱动1.44TFT需要注意SPI通信协议、数据传输格式、时钟频率和数据传输寄存器的设置,以确保数据能够正确地传输到TFT并显示出来。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值