STM32基础教程(CubeMX)—— LCD显示
LCD显示
LCD显示原理
原理
无论是什么显示器,其原理都是对数量众多的灯泡进行点亮和熄灭的操作。又由于灯泡的数量过于巨大,不可能用微控制器直接控制,因此需要借助控制器进行控制,对于LCD来说就是借助LCD控制器进行控制。
LCD控制器
LCD控制器是辅助进行LCD控制的一个集成电路,例如ILI9341。
使用LCD控制器的一般步骤,先初始化LCD控制器,对LCD控制器发送数据。数据发送的方式是8080并行通信,包括控制接口、数据接口和供电即触摸接口。使用8080并行通信需要遵循8080的通信时序,例如片选、命令、数据等操作。
&emps; 实际使用时不需要懂8080的通讯规则,而是使用一个类似翻译工具的功能——FSMC。
FSMC(Flexible Static Memory Controller可变静态存储控制器)
FSMC是帮助我们完成格式化通信的外设。
FSMC可以让STM32与SRAM、ROM、PSRAM、NOR Flash等存储器直接连接完成通信。
LCD显示库函数
即使已经解决了数据传输的问题,仍然需要自己编写控制LCD每个点的函数,编程还是十分繁琐,因此,显示器几乎都有厂家制作好的库函数供用户直接调用进行信息的显示。
德飞莱开发板有以前学长写好的LCD显示函数可供使用,只需要将这些库函数添加到工程里面即可。
CubeMX的操作
FSMC的设置
- 在"Pinout & Configuration"界面下,左侧选择下拉菜单"Connectivity",下拉菜单中选择"FSMC",中间的界面里出现对应的窗口。这些都是FSMC,控制LED实际上是控制SRAM,所以选择前四个下拉菜单中的任意一个。
- 在下拉菜单中,对照原理图,“Chip Select”片选选择原理图中的片选引脚;“Memory type”存储器类型中选择LCD Interface;“LCD Register Select”要对应原理图中LCD的RS引脚,即命令/数据标志位,作用是选择输入命令还是数据;“Date”数据选项,就是一次发送的数据位数,越高发送数据越快,一般来说和LCD的位数对应即可,值得一提的是,STM32中多个FSMC的数据口都是共用的,通过片选区别。
Keil5的操作
添加LCD库文件
- 在用户文件夹上双击可以添加文件,将文件放到工程文件夹中,并添加到工程里。
- 菜单栏点击“闪存”、“配置闪存工具”,弹出的窗口中点击c/c++,在“Include Paths”中将你添加的文件所在的路径添加进去。这个操作只适用于这一个工程,而且你也可以参考其他的路径添加相对路径。
使用LCD库文件
- 在"main.c"文件中包含头文件"stdio.h"、“lcd.h"和"math.h”。
- 打开液晶演示器的背光,德飞莱开发板使用的是PB0,高电平有效。
- 初始化LCD,函数是"lcd.c"文件中的
LCD_Init
函数。应当注意,函数的调用必须在函数中进行,另外CubeMX项目中初始化应该放在MX_FSMC_Init();
这条语句之后,也就是用户代码输入的第二个区域。 - 使用LCD进行显示,这里就请自行发挥,在"lcd.c"文件中寻找你所需要的函数。另外,LCD显示屏Y值的取值范围大约为0到305。
STM32基础教程(CubeMX)—— LCD显示相关推荐
- 【Arduino基础教程】LCD 1602显示屏
LCD显示屏模块 LCD显示屏与Arduino连接可以有两种方式: 直接与Arduino相连 通过转接板利用I2C的方式与Arduino相连 1. 直接与Arduino相连 直接与Arduino相连的 ...
- STM32基础——超声波测距+OLED显示+蜂鸣器报警
此代码的格式可以直接烧录到STMF03C8T6最小系统中,烧录在其它芯片需要自己进行代码移植,功能是使用超声波模块进行测距,距离会显示在OLED屏幕上,并且当测量到的数据小于设定的范围是,蜂鸣器报警, ...
- STM32 基础系列教程 0 - CubeMX 下载与安装
前言 学习STM32CUBEMX工具的下载与安装,学会从st官网(www.st.com)查找与下载资料. 示例详解 STM32CUBEMX 下载 进入st官网(www.st.com),在官网的网页搜索 ...
- STM32 基础系列教程 45 - FSMC_LCD_Touch
前言 上一节我们完成了用 STM32F4的 FSMC接口来控制 TFTLCD的显示的操作,其实正点原子的探索者F4开发板带的屏幕支持触摸操作,笔者用的是4.3寸的电容触摸屏,本节我们继续实验,来完成基 ...
- STM32 基础系列教程 44 - FSMC_LCD
前言 TFT-LCD 即薄膜晶体管液晶显示器.其英文全称为: Thin Film Transistor-Liquid Crystal Display. TFT-LCD 与无源 TN-LCD. STN- ...
- STM32 基础系列教程 23 - USB_cdc
前言 学习stm32 USB接口使用,学会用CUBE工具快速创建USB设备工程及调试,关于usb的相关知道请读者提前准备并学习,当然如果不想深究其中原理的话,跟着本文来操作就可以实现基于USB的设备开 ...
- STM32 基础系列教程 50 – MbedTls
前言 mbed TLS(以前称为PolarSSL)是TLS和SSL协议的实现,并且需要相应的加密算法和支持代码.这是双重许可与Apache许可证 2.0版(与GPLv2许可也可).网站上指出,mbed ...
- STM32 基础系列教程 49 – Jansson
前言 JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式.它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全 ...
- STM32 基础系列教程 48 – CJSON
前言 JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式.它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全 ...
- STM32 基础系列教程 47 - MD5
前言 MD5消息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信 ...
最新文章
- R语言stats包的setNames函数和data.table包的setnames函数为数据对象设置名称实战
- 应用流量管理,新网络管理必修课
- mysql backup_Mysqlbackup 备份详解(mysql官方备份工具)
- oracle 的float(b)转
- 什么是JAVA语言为什么要学习JAVA
- 一键装机linux_linux系统安装,怎样安装linux系统制作步骤
- 一本好的教辅,可以少走很多弯路:算法分析和设计 王晓东
- hive与hbase的以及mongodb和cassandra区别整理
- spring的bean不能注入的几种原因及分析
- 添加底部小火箭+目录
- 用C#实现用免费smtp服务器(GMail)发邮件(转)
- cin cout加快
- .NET单元测试(五):多线程
- 谭浩强c语言第五版 第二章习题解答
- vba 定义类_类接口的实现及应用
- Numpy:numpy包下载并导入Pycharm的方法
- 国内使用dropbox_如何在iPhone或iPod Touch上使用Dropbox
- 项目进度经常延误,该怎么破?
- 小酌重构系列[21]——避免双重否定
- egret新手引导反向遮罩
热门文章
- JavaScript基础知识总结(6张思维导图)
- java jbutton 禁用_Java 如何禁用JButton在禁用时变灰?
- DSIS多媒体信息发布系统液晶广告机管理软件
- icem二维非结构网格划分_ICEM_CFD划分六面体结构网格
- 华为5大设计师讲述HarmonyOS UX设计背后的故事
- HTTP协议:工作原理
- [Python][Scrapy] Scrapy 官方文档
- 无线网络通信技术完全介绍
- (转载)基于Overfeat的图片分类、定位、检测
- ai的预览模式切换_ai预览模式怎么退出