0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何將LCD與STM32F103C8T6 STM32開發(fā)板連接并編程

科技觀察員 ? 來源:circuitdigest ? 作者:阿斯文斯·拉吉 ? 2022-11-09 16:18 ? 次閱讀

對于任何微控制器項目,將顯示單元與它連接將使項目更容易,并吸引用戶與之交互。微控制器最常用的顯示單元是 16×2 字母數(shù)字顯示器。這些類型的顯示器不僅可用于向用戶顯示重要信息,還可以在項目的初始開發(fā)階段充當調試工具。因此,在本教程中,我們將學習如何將16×2 LCD顯示器與STM32F103C8T6STM32開發(fā)板連接,并使用Arduino IDE對其進行編程。

所需材料

STM32藍丸開發(fā)板

16×2 液晶顯示屏

FTDI 程序員

連接線

液晶顯示器

16×2 點陣 LCD 顯示屏簡介

如前所述,Energia IDE提供了一個漂亮的庫,使接口變得輕而易舉,因此不一定要了解顯示模塊的任何信息。但是,展示我們正在使用的東西不是很有趣嗎??!

名稱 16×2 意味著顯示器有 16 列和 2 行,它們一起 (16*2) 形成 32 個框。一個盒子在下圖中看起來像這樣

poYBAGNrYl6AEsERAAAHJD9etI0942.jpg

單個框有 40 個像素(點),矩陣順序為 5 行 8 列,這 40 個像素共同構成一個字符。同樣,可以使用所有框顯示 32 個字符?,F(xiàn)在讓我們看一下引腳排列。

pYYBAGNrYl-AHTB9AAApmrSZMRU009.png

LCD共有16個引腳,如上圖所示,它們可以分為四組,如下所示

源引腳(1、2 和 3):這些引腳為顯示器提供功率和對比度水平

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

數(shù)據(jù)/命令引腳(7 至 14):這些引腳提供LCD上應顯示哪些信息的數(shù)據(jù)。

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

電路圖和連接

16*2點陣LCD與STM32F103C8T6 STM32藍色藥丸板接口的電路圖如下所示。它是使用弗里辛軟件制作的。

pYYBAGNrYmSARdUXAAC9pnttl8Y503.png

如您所見,完整的連接是通過面包板進行的。我們需要一個FTDI板來對STM32微控制器進行編程。因此,與我們之前的教程類似,我們將FTDI板連接到STM32,F(xiàn)DTI編程器的Vcc和接地引腳分別連接到STM32的5V引腳和接地引腳。這用于為STM32板和LCD供電,因為兩者都可以接受+5V。FTDI 板的 Rx 和 Tx 引腳連接到 STM9 的 A10 和 A32 引腳,因此我們可以直接對電路板進行編程,而無需引導加載程序。

接下來,液晶屏必須連接到STM32板。我們將在4位模式下使用LCD,因此我們必須將4個數(shù)據(jù)位引腳(DB4至DB7)和兩個控制引腳(RS和EN)連接到STM32板,如上面的STM32F103C8T6 LCD接口電路圖所示。此外,下表將幫助您建立連接。

液晶屏引腳編號 液晶屏引腳名稱 STM32 引腳名稱
1 地面(錠) 地面 (G)
2 可變資本公司 5V
3 維伊 地面 (G)
4 寄存器選擇 (RS) PB11
5 讀/寫 (RW) 地面 (G)
6 啟用 (英文) PB10
7 數(shù)據(jù)位 0 (DB0) 無連接(常閉)
8 數(shù)據(jù)位 1 (DB1) 無連接(常閉)
9 數(shù)據(jù)位 2 (DB2) 無連接(常閉)
10 數(shù)據(jù)位 3 (DB3) 無連接(常閉)
11 數(shù)據(jù)位 4 (DB4) PB0
12 數(shù)據(jù)位 5 (DB5) PB1
13 數(shù)據(jù)位 6 (DB6) 電腦13
14 數(shù)據(jù)位 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對我們的微控制器進行編程的一個顯著優(yōu)勢是Arduino為幾乎所有著名的傳感器和執(zhí)行器提供了現(xiàn)成的庫。因此,在這里,我們通過包含LCD庫來啟動我們的程序,這使編程變得更加容易。

#include // include the LCD library

在下一行中,我們必須指定已將LCD顯示控件和數(shù)據(jù)線連接到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 設置函數(shù)中的代碼只執(zhí)行一次。因此,我們使用它來顯示一個介紹文本,該文本在屏幕上顯示 2 秒鐘,然后被清除。要提及文本必須出現(xiàn)的位置,我們使用函數(shù)lcd.setcursor,并使用lcd.print函數(shù)打印文本。例如,lcd.setCursor(0,0) 會將光標設置在我們打印“接口 LCD”的第一行和第一列,函數(shù) 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 }

顯示介紹文本后,我們通過創(chuàng)建延遲來保持程序 2 秒,以便用戶可以閱讀介紹消息。此延遲由行延遲 (2000) 創(chuàng)建,其中 2000 是以磨機秒為單位的延遲值。延遲后,我們使用lcd.clear()函數(shù)清除LCD,該函數(shù)通過刪除LCD上的所有文本來清除LCD。

最后在空循環(huán)中,我們在第一行顯示“STM32 – Blue Pill”,在第二行顯示秒值。秒的值可以從 millis() 函數(shù)中獲得。millis() 是一個計時器,從 MCU 通電時開始遞增。該值以毫秒的形式出現(xiàn),因此我們在將其顯示在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 位置,如下所示。此外,由于程序已經(jīng)上傳到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

}


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • lcd
    lcd
    +關注

    關注

    34

    文章

    4363

    瀏覽量

    166216
  • STM32
    +關注

    關注

    2258

    文章

    10828

    瀏覽量

    352509
  • STM32F103C8T6
    +關注

    關注

    106

    文章

    160

    瀏覽量

    82505
收藏 人收藏

    評論

    相關推薦

    STM32F103C8T6引腳圖

    本文介紹STM32F103C8T6引腳圖、STM32F103C8T6開發(fā)板電路圖及各部分引腳功能圖介紹,STM32F103C8T6資料下載。
    發(fā)表于 08-03 15:53 ?43.7w次閱讀
    <b class='flag-5'>STM32F103C8T6</b>引腳圖

    STM32F103C8T6核心BOOT啟動方式

    STM32F103C8T6核心BOOT啟動方式
    發(fā)表于 11-05 10:20 ?249次下載

    STM32F103C8T6 開發(fā)板電路圖

    STM32F103C8T6 開發(fā)板電路圖,多用于畢業(yè)設計
    發(fā)表于 03-13 17:08 ?45次下載

    STM32F103C8T6開發(fā)系統(tǒng)的電路原理圖免費下載

    本文檔的主要內容詳細介紹的是STM32F103C8T6開發(fā)系統(tǒng)的電路原理圖免費下載。
    發(fā)表于 03-11 08:00 ?51次下載
    <b class='flag-5'>STM32F103C8T6</b><b class='flag-5'>開發(fā)</b>系統(tǒng)<b class='flag-5'>板</b>的電路原理圖免費下載

    怎樣用ArduinoIDE對STM32F103C8T6進行編程

    STM32F103C8T6 - 也稱為Blue Pill - 是ARM Cortex的開發(fā)板M3微控制器。它看起來與Arduino Nano非常相似,但它包含更多功能。
    的頭像 發(fā)表于 07-30 08:42 ?5.3w次閱讀
    怎樣用ArduinoIDE對<b class='flag-5'>STM32F103C8T6</b>進行<b class='flag-5'>編程</b>

    STM32F103C8T6開發(fā)板的電路原理圖免費下載

    本文檔的主要內容詳細介紹的是STM32F103C8T6開發(fā)板的電路原理圖免費下載。
    發(fā)表于 12-24 11:57 ?412次下載
    <b class='flag-5'>STM32F103C8T6</b><b class='flag-5'>開發(fā)板</b>的電路原理圖免費下載

    STM32F103C8T6核心的資料合集免費下載

    本文檔的主要內容詳細介紹的是STM32F103C8T6核心的資料合集免費下載包括了:STM32F103C8T6核心測試程序(PC13閃爍),ST
    發(fā)表于 06-04 08:00 ?520次下載
    <b class='flag-5'>STM32F103C8T6</b>核心<b class='flag-5'>板</b>的資料合集免費下載

    STM32F103C8T6核心資料匯總

    STM32F103C8T6核心資料匯總
    發(fā)表于 05-20 15:31 ?281次下載

    基于STM32F103C8T6開發(fā)板控制的OLED顯示

    基于STM32F103C8T6開發(fā)板控制的OLED顯示
    發(fā)表于 06-03 09:24 ?78次下載

    利用STM32F103C8T6最小系統(tǒng)點亮流水燈

    利用STM32F103C8T6最小系統(tǒng)點亮流水燈STM32F103C8T6芯片簡介核心原理圖搭建流水燈電路修改工程模板代碼實現(xiàn)STM32F103
    發(fā)表于 11-17 17:06 ?58次下載
    利用<b class='flag-5'>STM32F103C8T6</b>最小系統(tǒng)<b class='flag-5'>板</b>點亮流水燈

    利用STM32F103C8T6最小系統(tǒng)點亮流水燈

    利用STM32F103C8T6最小系統(tǒng)點亮流水燈STM32F103C8T6芯片簡介核心原理圖搭建流水燈電路修改工程模板代碼實現(xiàn)STM32F103
    發(fā)表于 11-17 18:06 ?97次下載
    利用<b class='flag-5'>STM32F103C8T6</b>最小系統(tǒng)<b class='flag-5'>板</b>點亮流水燈

    STM32F103C8t6程序下載

    STM32F103C8t6程序下載
    發(fā)表于 11-24 18:21 ?230次下載
    <b class='flag-5'>STM32F103C8t6</b>程序下載

    基于STM32f103c8t6LCD2004顯示完整項目文件

    基于STM32f103c8t6LCD2004顯示,完整項目文件免費下載。
    發(fā)表于 06-08 09:33 ?18次下載

    stm32f103c8t6怎么連接噪聲傳感器

    (ADC引腳)。 在STM32F103C8T6上配置ADC功能。首先,你需要確定使用哪個ADC通道連接噪聲傳感器。然后,使用STM32開發(fā)工具,如STCubeMX或者Keil等,配置
    的頭像 發(fā)表于 12-21 16:10 ?1099次閱讀

    用USB轉TTL線怎么把程序燒寫到stm32f103C8T6

    用USB轉TTL線怎么把程序燒寫到stm32f103C8T6中? 程序燒寫到STM32F103C8T6芯片中需要使用USB轉TTL線連接計算機和
    的頭像 發(fā)表于 01-31 15:46 ?6235次閱讀