在本教程中,我将向您展示如何将I2C LCD与基于STM32F103C8T6 MCU的STM32 Blue Pill Board接口。如果您还记得“将16X2 LCD与STM32F103C8T6接口”的教程,我已经向您展示了将LCD与STM32连接并显示一些信息有多么简单。该项目将非常有趣,因为我将利用I2C通讯与16×2 LCD进行通讯。
介绍
小型的字母数字字符显示器(如非常流行的16×2 LCD显示器)是非常有用的小组件,因为您可以使用它们来显示与项目相关的一些重要信息。LCD上显示的信息可以与项目本身相关,如从温度传感器读取的信息或特殊数据(如调试消息或错误代码)。
我在很多项目中都使用了16×2 LCD显示模块,其中包括8051,基于ARM7的LPC2148,ATmega8,Arduino UNO和PIC等各种微控制器。
这一切都很好,但是对于16×2 LCD甚至更大的20×4 LCD显示器来说,这是一个小问题,因为与微控制器接口需要很多引脚。即使在4位数据模式下,LCD至少也需要微控制器的6个引脚(假设操作为写操作,即R / W连接到GND,则四个为数据引脚,一个为寄存器选择引脚,一个为使能引脚)。
使用微控制器的六个引脚连接到字符显示器似乎并不重要,但是如果您的项目非常复杂,则MCU的每个引脚似乎都非常重要。
如何将I2C LCD与STM32F103C8T6连接?
PCF8574 GPIO扩展器IC来了。它是一个专用模块,用于将16×2 LCD显示屏与所有铃声连接起来,例如,用于LCD对比度调整的10KΩPOT,用于I2C通信的上拉电阻,用于与微控制器连接的I2C引脚等。
您可以简单地将此模块连接到16×6 LCD显示器的背面,然后将I2C引脚连接到STM32 Blue Pill Board的相应I2C引脚。就这么简单。
PCF8574模块
在本“将PCF8574与Arduino接口”教程中,我已经讨论过PCF8574 GPIO扩展器IC。因此,我将不作详细介绍,而只是简要概述。
PCF8574是一个16引脚IC,用作I2C至8位并行IO扩展器。这意味着使用微控制器的I2C通信,可以有效地将微控制器的IO引脚数增加8。
购买PCF8574模块时要记住的重要一点是,市场上有两种类型的模块可供选择。一种是通用的IO扩展器模块,也可以用作IO扩展器。
另一种类型的模块也基于PCF8574 IC,但其设计方式使其只能与LCD显示器(即16×2甚至20×4 LCD)一起使用。因此,对于该项目,您必须选择后者,因为它具有与连接16X2 LCD显示器有关的所有必要组件和连接。
所需组件
基于STM32F103C8T6 MCU的STM32蓝色药丸板
基于PCF8574 IC的LCD连接器模块
16×2液晶显示器
连接线
USB转UART转换器模块(如果通过UART编程)
电路图
下图显示了I2C与基于STM32蓝色药丸板的STM32F103C8T6 MCU的接口电路图。
连接说明
该项目的连接非常简单。只需将PCF8574模块插入16×2 LCD的背面即可。连接之前,请检查LCD和PCF8574模块的引脚。如果连接正确,将可在显示屏右侧轻松访问PCF8574模块上的I2C引脚。
现在,将PCF8574模块的SDA引脚连接到STM32的PB7,并将模块的SCL引脚连接到STM32的PB6。将PCF8574模块的VCC和GND引脚连接到5V和GND。这样就完成了必要的连接。
识别PCF8574模块的从站地址
在为接口I2C LCD显示器编程STM32之前,我们需要计算PCF8574模块的从地址。由于I2C通信中的从地址非常重要,因此您必须事先知道它。
您可以参考PCF8574 IC的数据手册以及PCF8574 I2C LCD模块的示意图来计算从机地址。如果您认为这是一个乏味的过程,那么不用担心。还有另一种使用以下代码来计算从站地址的方法。该代码将计算从机地址并将其显示在串行监视器上。
代码
在我的情况下,从机地址为0X3F。因此,我必须在STM32的实际程序中使用此从站地址。
为I2C LCD显示编程STM32
在将I2C LCD与STM32F103C8T6 MCU接口之后,我们现在可以编写程序了。为此模块开发了一个名为“ LiquidCrystal_I2C”的特殊库。您可以从以下网站下载该库这个:https://github.com/fdebrabander/Arduino-LiquidCrystal-I2C-library链接。提取下载的zip文件的内容,并将其放在本地Arduino安装的library文件夹中。
使用从先前代码获得的从站地址,并使用相同的地址初始化LCD模块。还要指定LCD的每行字符数和LCD的行数,即16和2。
使用库的“打印”功能,可以在LCD上显示所需的字符。
代码
结论
此处实现了一个简单的项目,用于演示如何将I2C LCD与基于STM32F103C8T6 MCU的Blue Pill Board接口。
设计资源 培训 开发板 精华推荐
- LTM4612EV 演示板,符合 EN55022B 标准的 36V、5A DC/DC 模块稳压器
- LT3650EDD-8.4 演示板,高压 2 安培单片 2 节锂离子电池充电器
- OM13090: LPC54114音频和语音识别套件
- 简易QC3.0诱骗器
- LT1086IT-12 具有自动光控制功能的低压差正稳压器的典型应用
- 使用 HCNR201 电压模拟隔离放大器的高性能模拟光耦合器概述
- LT3741/LT3741-1 的典型应用 - 高功率、恒流、恒压、降压型控制器
- A8586KLJTR-T 宽输入电压、可调频率、3.5A 降压稳压器的典型应用电路,显示关键路径/环路
- 使用 Analog Devices 的 LTC2654 的参考设计
- #第七届立创电赛#usb功率计
- 2024年Automechanika Shanghai海量同期活动刷新历届记录,汇聚行业智慧,共谋未来发展
- 企业文化分享 如何培养稀缺的硅IP专业人员?SmartDV开启的个人成长与团队协作之旅
- 恩智浦发布首个超宽带无线电池管理系统解决方案
- 北交大本科生探秘泰克先进半导体开放实验室,亲历前沿高科技魅力
- 新帅上任:杜德森博士(Dr. Torsten Derr)将于2025年1月1日出任肖特集团首席执行官
- 边缘 AI 如何提升日常体验
- 苹果要首发!台积电宣布2nm已准备就绪
- AMD有望用上全新芯片堆叠技术:延迟大幅减少、性能显著提升
- 宁德时代发布10月战报
- 2024年10月电池行业:增长势头不减!