嵌入式开发-STM32硬件SPI驱动TFT屏

  • 这次用到的TFT屏
  • CubeMX设置
  • 代码编写
    • 增加的内容
    • 需要注意问题
  • 代码下载

这次用到的TFT屏

现在的TFT屏幕已经很便宜了,65536色屏幕,2.8英寸,分辨率320X240的液晶屏才20元,我为了图省事,多配了一个转接板12元,共32元包邮到家,真是香。
上面这个是这次用到的2.8寸TFT屏幕(20元),下面的是0.96寸OLED屏(10元),可见尺寸的巨大差别。当然OLED屏的优势是省电,在手持设备上是首选。

这个屏幕是SPI接口,最少4线驱动,分别是MOSI数据,CLK时钟,CS片选,DC数据/指令切换,还有2根线可选,是RESET和背光,复位可以用电阻电容上电时拉一下跳变即可,背光可以一直接高电平,也可以用PWM控制亮度。

CubeMX设置

CubeMX教程见这里:嵌入式开发–CubeMX使用入门教程
MCU是STM32H750VBT6,用的是SPI1接口,其他是常规设置,

支持的最高时钟频率,液晶屏厂家没有给出,ILI9341芯片手册上是这样说的

最高频率是6.35MHz,但要注意的是这是点频率,而我们在CubeMX中设置并不是这个,而是SPI的时钟频率,每个点是8位,所以这个频率要乘以8才是我们要的,5.35*8=50.8MHz,实测25M没有问题。27.5M花屏,30M以上无显示,可能是我用的杜邦线比较长信号衰减大。
具体设置如下:

代码编写

厂家只提供了F103系列的软件驱动GPIO来模拟SPI时序的代码,效率太低,于是改用硬件SPI,代码做了一些修改。
显示效果如下,16点阵字库:

增加的内容

增加了24点阵字库,常用的12或16字库太小了,看着费劲。
下图是24点阵的显示效果

需要注意问题

这个液晶屏是65536色,或者叫65K色,颜色格式是RGB565,传送数据时,正序和倒序的不同,会导致红蓝颠倒,通过改变大小端的设置,可以修正。理论上ILI9341应该有相关的寄存器设置,懒得去仔细查手册了,直接改的SPI设置搞定。如果有知道的,麻烦告知一下,十分感谢。

代码下载

代码可以在这里下载:嵌入式开发,STM32H750VBT6用硬件SPI方式驱动TFT液晶屏

嵌入式开发-STM32硬件SPI驱动TFT屏相关推荐

  1. ESP8266+MicroPython开发:ESP8266使用硬件SPI驱动TFT屏幕(ST7735)

    由于上次模拟SPI驱动TFT屏幕太慢,所以,本次采用硬件SPI来进行驱动,但是,当我直接把对应SPI接口更换时,发现TFT屏幕驱动并没有因此得到好转,依然是非常的满,然后只能从对应花点铺色,显示字符串 ...

  2. STM32硬件SPI驱动OLED

    文章目录 一.OLED相关 1.OLED简介 2.0.96寸的OLED模块概述 3.模块引脚说明 4.汉字点阵编码原理 二.硬件SPI 1.SPI简介 2.SPI的引脚映射关系 三.SPI驱动的OLE ...

  3. 【嵌入式】STM32基于SPI通信协议OLED屏显示

    STM32基于SPI通信协议OLED屏显示 一.SPI协议和OLED介绍 1.SPI协议介绍 物理层 协议层 2.OLED显示屏介绍 二.显示个人学号姓名实验 1.题目要求 2.代码部分 1.完整代码 ...

  4. stm32硬件SPI驱动3线SPI-LCD的方法

    1.基本控制原理 三线SPI LCD, 顾名思义,最少只需要3个IO控制LCD显示,如果采用硬件控制上电时序和背光,最少只需要接SCK,CS,MOSI三个引脚即可控制LCD,并且不管接不接其他引脚,控 ...

  5. 基础篇010.2 STM32驱动RC522 RFID模块之二:STM32硬件SPI驱动RC522

    目录 1. 实验硬件及原理图 1.1 RFID硬件 1.2 硬件原理图 2. 单片机与RFID硬件模块分析 3. 利用STM32CubeMX创建MDK工程 3.1 STM32CubeMX工程创建 3. ...

  6. 接上篇ADN8810的STM32硬件SPI驱动时钟极性问题

    遇到的问题beij 背景:时钟极性(Clock Polarity)CPOL,默认为LOW. 遇到的问题,首先我是直接给了一个CODE让AND8810能够输出电流,然后按照数据手册给的公式把电流转为CO ...

  7. 嵌入式开发--STM32上实现驱动注册initcall机制(类linux)

    一.前言 上一节我们实现了代码应用层和硬件层的分离管理,但是代码中还存在一个问题,每个硬件如LED控制,GPIO口需要初始化,初始化函数bsp_led_init();这个函数需要在主函数中调用初始化, ...

  8. STM32使用硬件SPI驱动RC522门禁模块

    0.前言 RC522射频门禁识别模块非常常用,某宝卖家提供的程序基本都是使用软件模拟SPI的方式进行驱动的,但是实测使用软件模拟SPI识别速率.准确性没有硬件SPI驱动时高,因此本篇博客用于记录使用S ...

  9. STM32单片机基础17——使用硬件SPI驱动TFT-LCD(ST7789)

    本篇详细的记录了如何使用STM32CubeMX配置STM32L431RCT6的硬件SPI外设与ST7789通信,驱动16bit TFT-LCD 屏幕. 0. 前言 学习 SPI 外设驱动LCD屏幕没有 ...

最新文章

  1. OpsDev是什么?
  2. 中芯国际再曝内讧,联席 CEO 梁孟松愤然辞职
  3. qpushbutton 设置字体大小_怎样设置Qpushbutton 的大小
  4. OpenGL中投影变换矩阵的反向推导
  5. java set转list,数组与list的转换
  6. linux系统sql语句报错_如果数据库管理工具1045错误出现在Linux系统中怎么
  7. str和unicode类
  8. cxf开发webservice服务端怎么返回固定的报文格式_Spring boot webservice怎么玩? 第277篇...
  9. java bean状态_无状态和有状态的企业Java Bean
  10. php 小程序登录授权解密,微信小程序授权登录,PHP解密数据,并返回用户信息token记住登录状态...
  11. 16、java包装类
  12. MongoDB和Elasticsearch的各使用场景对比
  13. 练打字-测试看图说话(AD安装)
  14. 算法一看就懂之「 数组与链表 」
  15. 分享自己喜欢的无损高音质音乐给大家
  16. Linux命令九---Linux进程管理命令---ps-kill-nohup-jobs-fg-bg-top等
  17. 2021-07-30
  18. 微信小程序+springboot+shiro实现登录
  19. c语言中-next是什么意思,Java中关于nextInt()、next()和nextLine()的理解
  20. 【无标题】java学习第二天

热门文章

  1. window效率神器推荐
  2. AlphaGo是如何炼成的:解读论文 Mastering the game of Go with deep neural networks and tree search
  3. 12升24V10A大电流升压同步整流方案
  4. springboot项目系列-论坛系统04登录注册实现
  5. C语言oj学生成绩输入和输出,『ACM入门』蓝桥杯ACM训练系统基本输入输出教程
  6. [Cnbeta]龙芯处理器性能怎么样
  7. mybatis中一级缓存和二级缓存
  8. Kali安装OWASP
  9. 上海科技大学计算机科学与技术水平,2019年上岸上海科技大学计算机,考研初复试经验分享!...
  10. 微信小程序如何刷新当前界面