8、STM32 FSMC驱动LCD(ILI93xx)

news2024/10/2 8:41:30

本文使用FSMC驱动LCD显示,关于建议先看之前的7、STM32 FSMC驱动SRAM一文
硬件连接:
在这里插入图片描述
在这里插入图片描述

一、CubeMx配置FSMC驱动LCD ILI93xx

此章只为快速使用LCD,不涉及原理、指令说明
显示屏驱动文件参考正点探索者

1、CubeMx图形配置

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
此处的时序还可以调整,配置的满足要求,没细究
生成工程…

2、添加文件至工程

文件可以在下面工程中获取
在这里插入图片描述
注意:文件中操作的是FSMC对应的NE4相应地址,

//使用NOR/SRAM的 Bank1.sector4,地址位HADDR[27,26]=11 A6作为数据命令区分线 
//注意设置时STM32内部会右移一位对其! 111 1110=0X7E			    
#define LCD_BASE        ((uint32_t)(0x6C000000 | 0x0000007E))
#define TFT_LCD             ((LCD_TypeDef *) LCD_BASE)

2、LCD代码编写

在这里插入图片描述
A、ILI93xx.h修改背光引脚宏
在这里插入图片描述
B、main.c文件添加编写串口printf所需函数、stdio.h、初始化LCD、字符串显示

#include "main.h"
#include "usart.h"
#include "gpio.h"
#include "fsmc.h"

/* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */
#include "ILI93xx.h"
#include "stdio.h"
/* USER CODE END Includes */

/* Private typedef -----------------------------------------------------------*/
/* USER CODE BEGIN PTD */

/* USER CODE END PTD */

/* Private define ------------------------------------------------------------*/
/* USER CODE BEGIN PD */
/* USER CODE END PD */

/* Private macro -------------------------------------------------------------*/
/* USER CODE BEGIN PM */

/* USER CODE END PM */

/* Private variables ---------------------------------------------------------*/

/* USER CODE BEGIN PV */

/* USER CODE END PV */

/* Private function prototypes -----------------------------------------------*/
void SystemClock_Config(void);
/* USER CODE BEGIN PFP */

/* USER CODE END PFP */

/* Private user code ---------------------------------------------------------*/
/* USER CODE BEGIN 0 */
/****************************************************
@function:串口重定义
@param:void
@return:void
@date:2023.2.14
@note:使用printf时需要此函数,并在Keil魔术棒中勾选User MicroLIB库
****************************************************/
int fputc(int ch,FILE *f)
{
    uint8_t data = ch;
	HAL_UART_Transmit(&huart1,&data,1,1);
	return(ch);
}
/* USER CODE END 0 */

/**
  * @brief  The application entry point.
  * @retval int
  */
int main(void)
{
  /* USER CODE BEGIN 1 */

  /* USER CODE END 1 */

  /* MCU Configuration--------------------------------------------------------*/

  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();

  /* USER CODE BEGIN Init */

  /* USER CODE END Init */

  /* Configure the system clock */
  SystemClock_Config();

  /* USER CODE BEGIN SysInit */

  /* USER CODE END SysInit */

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_FSMC_Init();
  MX_USART1_UART_Init();
  /* USER CODE BEGIN 2 */
  TFTLCD_Init();
  POINT_COLOR=RED;//设置字体为红色 
	LCD_ShowString(30,50,200,16,16,"STM32F4 FSMC LCD");	
  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
  }
  /* USER CODE END 3 */
}

在这里插入图片描述

3、文件下载:

部分文件:
在这里插入图片描述
链接:https://pan.baidu.com/s/1b-GrxnUoKsuabGLw4vK1Pw
提取码:vm16
完成工程:
链接:https://pan.baidu.com/s/1NrQoqWxm4E5wkiq_9IUPxQ
提取码:9utl

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/369908.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

GLOG如何清理日志

1 日志清理 其实GLOG很长时间以来都没有日志清理功能。小白对此也很震惊,还特意去查了GLOG的提交记录。代码的提交记录显示,GLOG与日志清理有关的最初代码是2019年11月1日,而这个开源项目的起始时间可以追溯到2008年。也就是说,在…

浅谈liunx init.d 和 rc.local 两种起动方式

浅谈liunx init.d 和 rc.local 两种起动方式 以rabbitmq 举例 (一).init.d 方式 开机自动重启设置 1.在/etc/init.d 目录下新建一个 rabbitmq [rootlocalhost init.d]# vi rabbitmq具体脚本如下所示: #!/bin/bash # # chkconfig: 2345 …

【离线数仓-7-数据仓库开发DIM层设计要点-拉链表同步装载脚本】

离线数仓-7-数据仓库开发DIM层设计要点-拉链表同步&装载脚本离线数仓-7-数据仓库开发DIM层设计要点-拉链表同步&装载脚本一、DIM层 维度模型 设计要点6.用户维度表 -拉链表1.用户维度表 前期梳理2.用户维度表 DDL表设计分析3.用户维度表 加载数据分析1.拉链表首日装载数…

RocketMQ 5.x新版本部署优化一览

​ RocketMQ从2022年9月份开始推出了新的5.x大版本。相比于之前的4.x版本,5.x版本向云原生前进了一大步。在增强原因功能的基础上,更是支持多语言客户端,周边生态也进行了补强和完善,明显可以看到离Kafka老大哥又近了很大一步。 …

linux网络编程-多进程实现TCP并发服务器

服务端流程步骤socket函数创建监听套接字lfdbind函数将监听套接字绑定ip和端口listen函数设置服务器为被动监听状态,同时创建一条未完成连接队列(没走完tcp三次握手流程的连接),和一条已完成连接队列(已完成tcp三次握手…

3-虚拟机篇

一.java JVM 的内存结构 内存:按线程类型分两类 线程共享: 方法区:存放类的信息堆:存放java对象的信息 线程私有: java虚拟机栈:存放java方法、方法参数和局部变量程序计数器:记录程序执行…

mars3d将当前视⻆指向北⽅且加载建筑物白膜

通过 setView⽅法实现,可以设置heading参数控制相对旋转⻆度map.scene.camera.setView({ orientation: { heading: 0, } }) 相关示例:1.http://mars3d.cn/editor-vue.html?idmap/options/scene2.功能示例(Vue版) | Mars3D三维可视化平台 | 火星科技// *…

ESP32S3 SPI发送间隔频率 驱动ADS8326

ESP32S3 SPI发送间隔频率驱动ADS8326esp32s3 spi例程 代码测试用寄存器方式实现spi发送寄存器描述驱动ADS8326 ads8326驱动时序 首先CS信号拉低,然后clk发送6个时钟,ads8326开始启动转换。 最后clk发送16个时钟,就会读取到两个字节的数据&a…

Spring扫描逻辑原码解析(带图好理解)

先上流程图 再上类图 再上代码 public static void main(String[] args) {XsmApplicationContext applicationContextnew XsmApplicationContext(AppConfig.class);System.out.println(applicationContext.getBean("userService"));System.out.println(applicationCo…

Laravel框架学习笔记——Laravel环境配置及安装(Ubuntu20.04为例)

目录引言1、安装Nginx2、安装PHP3、安装Composer4、搭建Laravel框架项目5、修改Nginx映射6、安装MySQL引言 好久没写博客了,因为个人需要, 所以要涉及到Laravel框架的学习,所以会出一系列的关于PHP的Laravel框架学习笔记,希望能够…

【平台数仓设计——2023】

平台数仓设计——2023前言一、选取大数据平台1、CDH大数据平台2、HDP大数据平台3、CDP大数据平台4、各种云数据中台二、选取调度平台1、DolphinScheduler(海豚调度)2、AzKaban3、Oozie4、Airflow5、corntab命令三、选取数仓设计方案1、离线数仓2、实时数仓3、离线实时一体化数仓…

尚医通 (二十二)预约下单

目录一、预约下单功能(一)1、需求2、搭建订单模块3、封装Feign调用获取就诊人接口4、封装Feign调用获取排班下单信息接口二、预约下单功能(二)1、实现生成订单接口三、预约下单功能(三)四、预约下单功能(四)1、生成订单后处理逻辑-封装短信接口2、生成订单后处理逻辑-更新排班数…

cracklib与libpwquality 评估密码的安全性

一、cracklib 检测密码强弱linux中采用pam pam_cracklib module来实现对密码强度的检测,可以通过配置让linux系统自动检测用户的密码是否为弱密码。yuminstall cracklib # centos apt-get install libcrack2 # ubuntu # 如果需要依赖此库做开发的话需要安装这个 y…

墨者——内部文件上传系统漏洞分析溯源 内部文件上传系统漏洞分析溯源

墨者——内部文件上传系统漏洞分析溯源 内部文件上传系统漏洞分析溯源 1.选择合适的文件上传 2.可以看到为*.asp文件 3.可以推测出此站点为IIS 4.上传shell.asp试试 5.上传报错,将其改名为shell.asp.txt上传,发现上传成功 6.有个问题就是服务器将我们所…

Node 10.0.8.6:9003 is unknown to cluster

解决方案解决方案一解决方案一 ① 概念介绍 公网ip:就是任意两台连接了互联网的电脑可以互相ping ip,能够通的ip 内网ip:只是在内网中使用无法与外网连接的ip ②问题背景 在腾讯云上搭建的一个redis集群,集群启动后 可以看到启动节点…

腾讯企微、泛微、契约锁举办的这场大会,超1000人共商数字化转型

全程数字化运营平台体验大会 2月23日下午,腾讯企业微信、泛微、契约锁在上海联合举办了全程数字化运营平台体验大会,旨在推动政企客户的数字化转型。 活动以“智能、协同、高效”为主题,吸引了上千位政府及企事单位的信息化负责人参与。 在…

Tapdata 和 Databend 数仓数据同步实战

作者:韩山杰https://github.com/hantmacDatabend Cloud 研发工程师基础架构在云计算时代也发生着翻天地覆的变化,对于业务的支持变成了如何能利用好云资源实现降本增效,同时更好的支撑业务也成为新时代技术人员的挑战。 本篇文章通过&#xf…

含泪推荐5款小体积,超实用的工具

大家好,我又来啦,今天给大家带来的5款软件,共同特点都是体积小、无广告、超实用,大家观看完可以自行搜索下载哦。 1.文字自动验证工具——LanguageTool LanguageTool是一款文字自动验证工具,不仅支持中英文&#xff…

如何将虚拟机ubuntu设置网路连接为桥接模式

当将虚拟机的网络适配器设置为NAT模式时,一切正常,可以ping通所有ip, 但是当设置为桥接模式时,ping命令会提示ubuntu connect: Network is unreachable 这是因为桥接模式没有设置正确,通过下面的步骤可以将桥接模式配置正确。 1…

iOS 生命周期 (最新最完整)

要知道APP的生命周期,首先要了解一下生命周期的5种状态,结合状态理解生命周期的使用。 一、应用的状态 应用的状态包括: 1.1 未运行(Not running) 程序没启动 1.2 未激活(Inactive) 程序在…