0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何将LCD与STM32F103C8T6 STM32开发板连接并编程

科技观察员 来源:circuitdigest 作者:阿斯文斯·拉吉 2022-11-09 16:18 次阅读

对于任何微控制器项目,将显示单元与它连接将使项目更容易,并吸引用户与之交互。微控制器最常用的显示单元是 16×2 字母数字显示器。这些类型的显示器不仅可用于向用户显示重要信息,还可以在项目的初始开发阶段充当调试工具。因此,在本教程中,我们将学习如何将16×2 LCD显示器与STM32F103C8T6STM32开发板连接,并使用Arduino IDE对其进行编程

所需材料

STM32蓝丸开发板

16×2 液晶显示屏

FTDI 程序员

连接线

液晶显示器

16×2 点阵 LCD 显示屏简介

如前所述,Energia IDE提供了一个漂亮的库,使接口变得轻而易举,因此不一定要了解显示模块的任何信息。但是,展示我们正在使用的东西不是很有趣吗!!

名称 16×2 意味着显示器有 16 列和 2 行,它们一起 (16*2) 形成 32 个框。一个盒子在下图中看起来像这样

poYBAGNrYl6AEsERAAAHJD9etI0942.jpg

单个框有 40 个像素(点),矩阵顺序为 5 行 8 列,这 40 个像素共同构成一个字符。同样,可以使用所有框显示 32 个字符。现在让我们看一下引脚排列。

pYYBAGNrYl-AHTB9AAApmrSZMRU009.png

LCD共有16个引脚,如上图所示,它们可以分为四组,如下所示

源引脚(1、2 和 3):这些引脚为显示器提供功率和对比度水平

控制引脚(4、5 和 6):这些引脚设置/控制LCD接口IC中的寄存器(更多信息可在下面的链接中找到)

数据/命令引脚(7 至 14):这些引脚提供LCD上应显示哪些信息的数据。

LED 引脚(15 和 16):如果需要,这些引脚用于照亮LCD的背光(可选)。

电路图和连接

16*2点阵LCD与STM32F103C8T6 STM32蓝色药丸板接口的电路图如下所示。它是使用弗里辛软件制作的。

pYYBAGNrYmSARdUXAAC9pnttl8Y503.png

如您所见,完整的连接是通过面包板进行的。我们需要一个FTDI板来对STM32微控制器进行编程。因此,与我们之前的教程类似,我们将FTDI板连接到STM32,FDTI编程器的Vcc和接地引脚分别连接到STM32的5V引脚和接地引脚。这用于为STM32板和LCD供电,因为两者都可以接受+5V。FTDI 板的 Rx 和 Tx 引脚连接到 STM9 的 A10 和 A32 引脚,因此我们可以直接对电路板进行编程,而无需引导加载程序。

接下来,液晶屏必须连接到STM32板。我们将在4位模式下使用LCD,因此我们必须将4个数据位引脚(DB4至DB7)和两个控制引脚(RS和EN)连接到STM32板,如上面的STM32F103C8T6 LCD接口电路图所示。此外,下表将帮助您建立连接。

液晶屏引脚编号 液晶屏引脚名称 STM32 引脚名称
1 地面(锭) 地面 (G)
2 可变资本公司 5V
3 维伊 地面 (G)
4 寄存器选择 (RS) PB11
5 读/写 (RW) 地面 (G)
6 启用 (英文) PB10
7 数据位 0 (DB0) 无连接(常闭)
8 数据位 1 (DB1) 无连接(常闭)
9 数据位 2 (DB2) 无连接(常闭)
10 数据位 3 (DB3) 无连接(常闭)
11 数据位 4 (DB4) PB0
12 数据位 5 (DB5) PB1
13 数据位 6 (DB6) 电脑13
14 数据位 7 (DB7) 电脑14
15 正极指示灯 5V
16 负极指示灯 地面 (G)

连接完成后,我们可以打开Arduino IDE并开始编程。

使用 Arduino 对 LCD 的 STM32 进行编程

如本教程所述,我们将使用Arduino IDE对STM32微控制器进行编程。但是,默认情况下,Arduino IDE不会安装STM32板,因此我们必须下载一个软件包并为此准备Arduino IDE。

一旦STM32板卡安装在Arduino IDE中,我们就可以开始编程了。该程序与Arduino板非常相似,唯一会改变的是引脚名称,因为STM32和Arduino的符号不同。完整的程序在本页末尾给出,但为了解释该程序,我将其拆分为有意义的小片段,如下所示。

使用Arduino对我们的微控制器进行编程的一个显着优势是Arduino为几乎所有著名的传感器和执行器提供了现成的库。因此,在这里,我们通过包含LCD库来启动我们的程序,这使编程变得更加容易。

#include // include the LCD library

在下一行中,我们必须指定已将LCD显示控件和数据线连接到STM32的GPIO引脚。为此,我们必须检查我们的硬件,为方便起见,您还可以参考顶部给出的表格,其中列出了 LCD 与 STM32 的 GPIO 引脚的引脚名称。提到引脚后,我们可以使用液晶功能初始化LCD。我们还将我们的LCD命名为“LCD”,如下所示。

const int rs = PB11, en = PB10, d4 = PB0, d5 = PB1, d6 = PC13, d7 = PC14; //mention the pin names to with LCD is connected to

LiquidCrystal lcd(rs, en, d4, d5, d6, d7); //Initialize the LCD

接下来,我们进入设置功能。在这里,我们首先提到我们使用的LCD类型。由于它是 16*2 LCD,我们使用 lcd.begin(16,2) 行。void 设置函数中的代码只执行一次。因此,我们使用它来显示一个介绍文本,该文本在屏幕上显示 2 秒钟,然后被清除。要提及文本必须出现的位置,我们使用函数lcd.setcursor,并使用lcd.print函数打印文本。例如,lcd.setCursor(0,0) 会将光标设置在我们打印“接口 LCD”的第一行和第一列,函数 lcd.setCursor (0,1) 将光标移动到第二行第一列,我们在其中打印“CircuitDigest”行。

void setup() { lcd.begin(16, 2);//We are using a 16*2 LCD lcd.setCursor(0, 0); //At first row first column lcd.print("Interfacing LCD"); //Print this lcd.setCursor(0, 1); //At secound row first column lcd.print("-CircuitDigest"); //Print this delay(2000); //wait for two secounds lcd.clear(); //Clear the screen }

显示介绍文本后,我们通过创建延迟来保持程序 2 秒,以便用户可以阅读介绍消息。此延迟由行延迟 (2000) 创建,其中 2000 是以磨机秒为单位的延迟值。延迟后,我们使用lcd.clear()函数清除LCD,该函数通过删除LCD上的所有文本来清除LCD。

最后在空循环中,我们在第一行显示“STM32 – Blue Pill”,在第二行显示秒值。秒的值可以从 millis() 函数中获得。millis() 是一个计时器,从 MCU 通电时开始递增。该值以毫秒的形式出现,因此我们在将其显示在LCD上之前将其除以1000。

void loop() {

lcd.setCursor(0, 0); //At first row first column

lcd.print("STM32 -Blue Pill"); //Print this

lcd.setCursor(0, 1); //At secound row first column

lcd.print(millis() / 1000); //Print the value of secounds

}

将程序上传到STM32F103C8T6板

按照电路图中所示进行连接,并在Arduino IDE上使用下面给出的代码。转到工具并确保在入门教程中选择了正确的板。此外,在上传程序之前,请确保将启动 0 跳线设置为 1,如下图所示,然后按重置按钮。按下上传按钮时,应上传代码,消息将显示在LCD上,如下图所示。

pYYBAGNrYmaABe2uAADR_DQxbFA928.jpg

在工作模式下验证输出

如上一段所述,您应该能够在上传代码后立即注意到输出。但是下次上电时,该程序将不起作用,因为电路板仍处于编程模式。因此,一旦程序上传,启动 0 上的跳线应更改回 0 位置,如下所示。此外,由于程序已经上传到STM32板,我们不需要FTDI板,整个设置可以通过STM32板的micro-USB端口供电,如下所示。

pYYBAGNrYmiATrSBAADKff-HSqw059.jpg

这只是一个简单的接口项目,以帮助将LCD显示器与STM32板一起使用,但您可以进一步使用它来构建很酷的项目。希望您理解本教程并从中学到一些有用的东西。

/*

Program to test 16*2 Alaphanumeric LCD with STM32 (Blue Pill)

The circuit:

* LCD RS pin to digital pin PB11

* LCD Enable pin to digital pin PB10

* LCD D4 pin to digital pin PB0

* LCD D5 pin to digital pin PB1

* LCD D6 pin to digital pin PC13

* LCD D7 pin to digital pin PC14

* LCD R/W pin to ground

* LCD VSS pin to ground

* LCD VCC pin to 5V

*/



#include // include the LCD library


const int rs = PB11, en = PB10, d4 = PB0, d5 = PB1, d6 = PC13, d7 = PC14; //mention the pin names to with LCD is connected to

LiquidCrystal lcd(rs, en, d4, d5, d6, d7); //Initialize the LCD


void setup() {

lcd.begin(16, 2);//We are using a 16*2 LCD

lcd.setCursor(0, 0); //At first row first column

lcd.print("Interfacing LCD"); //Print this

lcd.setCursor(0, 1); //At secound row first column

lcd.print("-CircuitDigest"); //Print this



delay(2000); //wait for two secounds

lcd.clear(); //Clear the screen

}


void loop() {


lcd.setCursor(0, 0); //At first row first column

lcd.print("STM32 -Blue Pill"); //Print this


lcd.setCursor(0, 1); //At secound row first column

lcd.print(millis() / 1000); //Print the value of secounds

}


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • lcd
    lcd
    +关注

    关注

    34

    文章

    4426

    浏览量

    167453
  • STM32
    +关注

    关注

    2270

    文章

    10900

    浏览量

    355891
  • STM32F103C8T6
    +关注

    关注

    108

    文章

    160

    浏览量

    83551
收藏 人收藏

    评论

    相关推荐

    STM32F103C8T6引脚图

    本文介绍STM32F103C8T6引脚图、STM32F103C8T6开发板电路图及各部分引脚功能图介绍,STM32F103C8T6资料下载。
    发表于 08-03 15:53 43.9w次阅读
    <b class='flag-5'>STM32F103C8T6</b>引脚图

    STM32F103C8T6 开发板电路图

    STM32F103C8T6 开发板电路图,多用于毕业设计
    发表于 03-13 17:08 45次下载

    STM32F103C8T6开发系统的电路原理图免费下载

    本文档的主要内容详细介绍的是STM32F103C8T6开发系统的电路原理图免费下载。
    发表于 03-11 08:00 52次下载
    <b class='flag-5'>STM32F103C8T6</b><b class='flag-5'>开发</b>系统<b class='flag-5'>板</b>的电路原理图免费下载

    怎样用ArduinoIDE对STM32F103C8T6进行编程

    STM32F103C8T6 - 也称为Blue Pill - 是ARM Cortex的开发板M3微控制器。它看起来与Arduino Nano非常相似,但它包含更多功能。
    的头像 发表于 07-30 08:42 5.4w次阅读
    怎样用ArduinoIDE对<b class='flag-5'>STM32F103C8T6</b>进行<b class='flag-5'>编程</b>

    STM32F103C8T6开发板的电路原理图免费下载

    本文档的主要内容详细介绍的是STM32F103C8T6开发板的电路原理图免费下载。
    发表于 12-24 11:57 414次下载
    <b class='flag-5'>STM32F103C8T6</b><b class='flag-5'>开发板</b>的电路原理图免费下载

    STM32F103C8T6核心的资料合集免费下载

    本文档的主要内容详细介绍的是STM32F103C8T6核心的资料合集免费下载包括了:STM32F103C8T6核心测试程序(PC13闪烁),ST
    发表于 06-04 08:00 720次下载
    <b class='flag-5'>STM32F103C8T6</b>核心<b class='flag-5'>板</b>的资料合集免费下载

    基于STM32F103C8T6开发板控制的OLED显示

    基于STM32F103C8T6开发板控制的OLED显示
    发表于 06-03 09:24 80次下载

    利用STM32F103C8T6最小系统点亮流水灯

    利用STM32F103C8T6最小系统点亮流水灯STM32F103C8T6芯片简介核心原理图搭建流水灯电路修改工程模板代码实现STM32F103
    发表于 11-17 17:06 59次下载
    利用<b class='flag-5'>STM32F103C8T6</b>最小系统<b class='flag-5'>板</b>点亮流水灯

    利用STM32F103C8T6最小系统点亮流水灯

    利用STM32F103C8T6最小系统点亮流水灯STM32F103C8T6芯片简介核心原理图搭建流水灯电路修改工程模板代码实现STM32F103
    发表于 11-17 18:06 97次下载
    利用<b class='flag-5'>STM32F103C8T6</b>最小系统<b class='flag-5'>板</b>点亮流水灯

    STM32F103C8t6程序下载

    STM32F103C8t6程序下载
    发表于 11-24 18:21 233次下载
    <b class='flag-5'>STM32F103C8t6</b>程序下载

    STM32开发,使用F103C8T6驱动3.2寸SPI口LCD

    STM32开发,使用F103C8T6驱动3.2寸SPI口LCD屏1 概述1.1 资源概述T1.2 实现功能2 硬件介绍2.1 最小系统
    发表于 12-22 19:30 39次下载
    <b class='flag-5'>STM32</b><b class='flag-5'>开发</b>,使用<b class='flag-5'>F103C8T6</b>驱动3.2寸SPI口<b class='flag-5'>LCD</b>屏

    基于STM32f103c8t6LCD2004显示完整项目文件

    基于STM32f103c8t6LCD2004显示,完整项目文件免费下载。
    发表于 06-08 09:33 19次下载

    STM32F103C8T6核心原理图

    STM32F103C8T6核心原理图免费下载。
    发表于 04-23 09:47 409次下载

    stm32f103c8t6怎么连接噪声传感器

    (ADC引脚)。 在STM32F103C8T6上配置ADC功能。首先,你需要确定使用哪个ADC通道连接噪声传感器。然后,使用STM32开发工具,如STCubeMX或者Keil等,配置
    的头像 发表于 12-21 16:10 1504次阅读

    用USB转TTL线怎么把程序烧写到stm32f103C8T6

    用USB转TTL线怎么把程序烧写到stm32f103C8T6中  程序烧写到STM32F103C8T6芯片中需要使用USB转TTL线连接计算机和
    的头像 发表于 01-31 15:46 7277次阅读