【TFT彩屏移植】STM32F4移植1.8寸TFT彩屏简明教程(一)

简介: 【TFT彩屏移植】STM32F4移植1.8寸TFT彩屏简明教程(一·)

一.移植说明

 笔者最近为了学习LVGL需要一块显示屏,由于选择了STM32F407VET6这款芯片来作为搭建框架的主要平台,于是需要移植一块显示屏到F4上。正好笔者手上有一块1.8寸TFT彩屏,便进行移植。


       笔者的这块屏幕是1.8寸 128*160 RGB,驱动为ST7735的TFT屏,如下:

二.移植

1.例程

       首先找厂家要了例程,例程里是F1的驱动程序:

物理接口:

       可见例程为软件SPI驱动。

       延时函数:

1.#include "stm32f10x.h"
#include "delay.h" 
static u8  fac_us=0;//us延时倍乘数
static u16 fac_ms=0;//ms延时倍乘数
//初始化延迟函数
//SYSTICK的时钟固定为HCLK时钟的1/8
//SYSCLK:系统时钟
void delay_init(u8 SYSCLK)
{
  SysTick->CTRL&=0xfffffffb;//bit2清空,选择外部时钟
  fac_us=SYSCLK/8;//HCLK/8        
  fac_ms=(u16)fac_us*1000;
}
//延时nms
//注意nms的范围
//SysTick->LOAD为24位寄存器,所以,最大延时为:
//nms<=0xffffff*8*1000/SYSCLK
//SYSCLK单位为Hz,nms单位为ms
//对72M条件下,nms<=1864 
void delay_ms(u16 nms)
{           
  u32 temp;      
  SysTick->LOAD=(u32)nms*fac_ms;//时间加载(SysTick->LOAD为24bit)
  SysTick->VAL =0x00;           //清空计数器
  SysTick->CTRL=0x01 ;          //开始倒数  
  do
  {
    temp=SysTick->CTRL;
  }
  while(temp&0x01&&!(temp&(1<<16)));//等待时间到达   
  SysTick->CTRL=0x00;       //关闭计数器
  SysTick->VAL =0X00;       //清空计数器         
}   
//延时nus
//nus为要延时的us数.                           
void delay_us(u32 nus)
{   
  u32 temp;        
  SysTick->LOAD=nus*fac_us; //时间加载         
  SysTick->VAL=0x00;        //清空计数器
  SysTick->CTRL=0x01 ;      //开始倒数   
  do
  {
    temp=SysTick->CTRL;
  }
  while(temp&0x01&&!(temp&(1<<16)));//等待时间到达   
  SysTick->CTRL=0x00;       //关闭计数器
  SysTick->VAL =0X00;       //清空计数器  
}

这个延时函数是很经典的写法,详解可见:【总结】单片机重点知识总结记录(存储管理+STM32滴答定时器)-CSDN博客

        底层驱动文件:

这个文件包含GPIO初始化以及软件SPI时序的实现。

GUI界面文件:

主要是实现UI界面的功能函数。

       测试demo:














相关文章
|
7月前
|
IDE 编译器 开发工具
【STM32 LVGL基础教程】初识LVGL
【STM32 LVGL基础教程】初识LVGL
615 0
|
2月前
|
存储
【TFT彩屏移植】STM32F4移植1.8寸TFT彩屏简明教程(二)
【TFT彩屏移植】STM32F4移植1.8寸TFT彩屏简明教程(二)
|
7月前
|
消息中间件 Web App开发 API
FreeRTOS介绍 和 将FreeRTOS移植到STM32F103C8T6
FreeRTOS介绍 和 将FreeRTOS移植到STM32F103C8T6
FreeRTOS介绍 和 将FreeRTOS移植到STM32F103C8T6
|
4月前
|
传感器
手把手在STM32F103C8T6上构建可扩展可移植的DHT11驱动
【8月更文挑战第29天】本文详细介绍在STM32F103C8T6上构建可扩展且可移植的DHT11温湿度传感器驱动的步骤,包括硬件与软件准备、硬件连接、驱动代码编写及测试。通过这些步骤,可根据实际项目需求优化和扩展代码。
129 0
|
5月前
|
数据安全/隐私保护
STM32CubeMX U8g2移植
STM32CubeMX U8g2移植
110 12
|
7月前
|
C语言
【STM32 CubeMX】移植u8g2(一次成功)
【STM32 CubeMX】移植u8g2(一次成功)
682 0
STM32CubeIDE移植ARM DSP库
STM32CubeIDE移植ARM DSP库
|
7月前
|
传感器 数据采集 监控
毕业设计 基于STM32单片机生理监控心率脉搏TFT彩屏波形曲线设计
毕业设计 基于STM32单片机生理监控心率脉搏TFT彩屏波形曲线设计
105 0
|
6月前
使用STM32F103标准库实现定时器控制LED点亮和关闭
通过这篇博客,我们学习了如何使用STM32F103标准库,通过定时器来控制LED的点亮和关闭。我们配置了定时器中断,并在中断处理函数中实现了LED状态的切换。这是一个基础且实用的例子,适合初学者了解STM32定时器和中断的使用。 希望这篇博客对你有所帮助。如果有任何问题或建议,欢迎在评论区留言。
459 2
|
5月前
stm32f407探索者开发板(十七)——串口寄存器库函数配置方法
stm32f407探索者开发板(十七)——串口寄存器库函数配置方法
736 0