在本教程中,我將向您展示如何將I2C LCD與基于STM32F103C8T6 MCU的STM32 Blue Pill Board接口。如果您還記得“將16X2 LCD與STM32F103C8T6接口”的教程,我已經(jīng)向您展示了將LCD與STM32連接并顯示一些信息有多么簡單。該項目將非常有趣,因為我將利用I2C通訊與16×2 LCD進行通訊。
介紹
小型的字母數(shù)字字符顯示器(如非常流行的16×2 LCD顯示器)是非常有用的小組件,因為您可以使用它們來顯示與項目相關(guān)的一些重要信息。LCD上顯示的信息可以與項目本身相關(guān),如從溫度傳感器讀取的信息或特殊數(shù)據(jù)(如調(diào)試消息或錯誤代碼)。
我在很多項目中都使用了16×2 LCD顯示模塊,其中包括8051,基于ARM7的LPC2148,ATmega8,Arduino UNO和PIC等各種微控制器。
這一切都很好,但是對于16×2 LCD甚至更大的20×4 LCD顯示器來說,這是一個小問題,因為與微控制器接口需要很多引腳。即使在4位數(shù)據(jù)模式下,LCD至少也需要微控制器的6個引腳(假設(shè)操作為寫操作,即R / W連接到GND,則四個為數(shù)據(jù)引腳,一個為寄存器選擇引腳,一個為使能引腳)。
使用微控制器的六個引腳連接到字符顯示器似乎并不重要,但是如果您的項目非常復(fù)雜,則MCU的每個引腳似乎都非常重要。
如何將I2C LCD與STM32F103C8T6連接?
PCF8574 GPIO擴展器IC來了。它是一個專用模塊,用于將16×2 LCD顯示屏與所有鈴聲連接起來,例如,用于LCD對比度調(diào)整的10KΩPOT,用于I2C通信的上拉電阻,用于與微控制器連接的I2C引腳等。
您可以簡單地將此模塊連接到16×6 LCD顯示器的背面,然后將I2C引腳連接到STM32 Blue Pill Board的相應(yīng)I2C引腳。就這么簡單。
PCF8574模塊
在本“將PCF8574與Arduino接口”教程中,我已經(jīng)討論過PCF8574 GPIO擴展器IC。因此,我將不作詳細介紹,而只是簡要概述。
PCF8574是一個16引腳IC,用作I2C至8位并行IO擴展器。這意味著使用微控制器的I2C通信,可以有效地將微控制器的IO引腳數(shù)增加8。
購買PCF8574模塊時要記住的重要一點是,市場上有兩種類型的模塊可供選擇。一種是通用的IO擴展器模塊,也可以用作IO擴展器。
另一種類型的模塊也基于PCF8574 IC,但其設(shè)計方式使其只能與LCD顯示器(即16×2甚至20×4 LCD)一起使用。因此,對于該項目,您必須選擇后者,因為它具有與連接16X2 LCD顯示器有關(guān)的所有必要組件和連接。
所需組件
基于STM32F103C8T6 MCU的STM32藍色藥丸板
基于PCF8574 IC的LCD連接器模塊
16×2液晶顯示器
連接線
USB轉(zhuǎn)UART轉(zhuǎn)換器模塊(如果通過UART編程)
電路圖
下圖顯示了I2C與基于STM32藍色藥丸板的STM32F103C8T6 MCU的接口電路圖。
連接說明
該項目的連接非常簡單。只需將PCF8574模塊插入16×2 LCD的背面即可。連接之前,請檢查LCD和PCF8574模塊的引腳。如果連接正確,將可在顯示屏右側(cè)輕松訪問PCF8574模塊上的I2C引腳。
現(xiàn)在,將PCF8574模塊的SDA引腳連接到STM32的PB7,并將模塊的SCL引腳連接到STM32的PB6。將PCF8574模塊的VCC和GND引腳連接到5V和GND。這樣就完成了必要的連接。
識別PCF8574模塊的從站地址
在為接口I2C LCD顯示器編程STM32之前,我們需要計算PCF8574模塊的從地址。由于I2C通信中的從地址非常重要,因此您必須事先知道它。
您可以參考PCF8574 IC的數(shù)據(jù)手冊以及PCF8574 I2C LCD模塊的示意圖來計算從機地址。如果您認為這是一個乏味的過程,那么不用擔心。還有另一種使用以下代碼來計算從站地址的方法。該代碼將計算從機地址并將其顯示在串行監(jiān)視器上。
代碼
在我的情況下,從機地址為0X3F。因此,我必須在STM32的實際程序中使用此從站地址。
為I2C LCD顯示編程STM32
在將I2C LCD與STM32F103C8T6 MCU接口之后,我們現(xiàn)在可以編寫程序了。為此模塊開發(fā)了一個名為“ LiquidCrystal_I2C”的特殊庫。您可以從以下網(wǎng)站下載該庫這個:https://github.com/fdebrabander/Arduino-LiquidCrystal-I2C-library鏈接。提取下載的zip文件的內(nèi)容,并將其放在本地Arduino安裝的library文件夾中。
使用從先前代碼獲得的從站地址,并使用相同的地址初始化LCD模塊。還要指定LCD的每行字符數(shù)和LCD的行數(shù),即16和2。
使用庫的“打印”功能,可以在LCD上顯示所需的字符。
代碼
結(jié)論
此處實現(xiàn)了一個簡單的項目,用于演示如何將I2C LCD與基于STM32F103C8T6 MCU的Blue Pill Board接口。
-
接口
+關(guān)注
關(guān)注
33文章
8712瀏覽量
152013 -
STM32
+關(guān)注
關(guān)注
2273文章
10926瀏覽量
357767 -
I2C
+關(guān)注
關(guān)注
28文章
1495瀏覽量
124703
原文標題:如何將I2C LCD與STM32F103C8T6連接 - 【STM32教程】
文章出處:【微信號:aidanpianji,微信公眾號:單片機】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
基于STM32F103C8T6 ADXL345 加速度傳感器的計步器設(shè)計指南和代碼
STM32F103×8/STM32F103×B MCU手冊
學STM32為什么首選F103C8T6?
![學<b class='flag-5'>STM32</b>為什么首選<b class='flag-5'>F103C8T6</b>?](https://file.elecfans.com/web2/M00/9B/3D/poYBAGQjnauAVXOgAABFcEbXdEE684.png)
評論