国产成人片无码视频在线观看_亚洲国产精品日韩_在线日韩一区二区_亚洲在现黄色视频_亚洲美女毛茸茸的撒尿_日本少妇又黄又爽视频_国产福利蜜臀av_超碰caoporen进入离开_精品无码三级在线观看网址勾搭_丝袜激情性色国产精品

當(dāng)前位置:首頁(yè) > 新聞中心 > 公司新聞

stm32可以用lcd1602嗎 LCD1602怎么和stm32連接

信息來(lái)源:康普特智能 日期:2024-10-31 22:59:19 瀏覽:9 返回列表

  隨著智能化的不斷推進(jìn),嵌入式系統(tǒng)的應(yīng)用已經(jīng)越來(lái)越廣泛,然而在各種電子器件當(dāng)中,LCD1602屏幕的顯示功能很受歡迎。但是,連接LCD1602顯示屏與STM32單片機(jī)的方式又是怎樣的呢?

  LCD1602顯示屏與STM32的連接方案有哪些?

  在STM32的連接方案中,使用一個(gè)3位或4位數(shù)據(jù)線(xiàn)也可以實(shí)現(xiàn)連接。我們使用的是4位數(shù)據(jù)線(xiàn)。

  LCD1602連接的通信線(xiàn)需要連接到STM32的GPIO口,即數(shù)據(jù)總線(xiàn)、讀寫(xiě)控制線(xiàn)等需要接在STM32單片機(jī)的對(duì)應(yīng)GPIO口。在LCD1602上有8個(gè)引腳,分別為VSS、VDD、VO、RS、RW、E和D0~D7。其中VSS、VDD、VO就是電源、顯示屏的偏置電壓和地。

  使用STM32連接LCD1602顯示屏需要哪些驅(qū)動(dòng)器和庫(kù)?

  STM32連接LCD1602一般需要借助各種軟、硬件,其中軟件需要使用STM32的庫(kù)函數(shù)以及匯編語(yǔ)言,硬件就是7個(gè)引腳,這些引腳依次是EN,RS,D7~D4。

  軟件的部分,使用的是STM32的HAL庫(kù)函數(shù)。而硬件方面,我們可以使用一些常用的電路板,如LCD1602模塊,它可以在市場(chǎng)上輕松找到。

  如何編寫(xiě)STM32與LCD1602顯示屏通信的代碼?

  當(dāng)前的開(kāi)發(fā)板,采用的是 STM32F103C8T6 開(kāi)發(fā)板,所以在編寫(xiě)程序時(shí),需要應(yīng)用串行2和端口 B。首先,我們需要在代碼開(kāi)頭添加必要的頭文件。

  #include "stm32f10x.h"

  接下來(lái)需要定義需要使用的宏。

  #define RS_PORT GPIOB

  #define RS_H GPIO_Pin_9

  #define RS_L GPIO_Pin_Reset

  #define ENABLE_PORT GPIOB

  #define ENABLE_H GPIO_Pin_5

  #define ENABLE_L GPIO_Pin_Reset

  #define DB_PORT GPIOB

  #define DB_H GPIO_Pin_13

  #define DB_L GPIO_Pin_Reset

  void LCD_IO_Config(void);

  void LCD_WriteCommand(char cmd);

  void LCD_WriteData(char dat);

  void LCD_String(char *str);

  void LCD_ClearScreen(void);

  void LCD_SetCursor(char x,char y);

  void LCD1602_Init(void)

  {

   //激活PIN口

   LCD_IO_Config();

  

   //初始化LCD

   LCD_WriteCommand(0x28);

   LCD_WriteCommand(0x06);

   LCD_WriteCommand(0x0C);

   LCD_ClearScreen();

  }

  void LCD_IO_Config(void)

  {

   GPIO_InitTypeDef GPIO_InitStruct;

  

   //轉(zhuǎn)換至對(duì)應(yīng)的GPIO口

  

   RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);

  

   //設(shè)置GPIO口的參數(shù)

  

   GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;

   GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;

  

   GPIO_InitStruct.GPIO_Pin = RS_H;

   GPIO_Init(RS_PORT, &GPIO_InitStruct);

  

   GPIO_InitStruct.GPIO_Pin = ENABLE_H;

   GPIO_Init(ENABLE_PORT, &GPIO_InitStruct);

  

   GPIO_InitStruct.GPIO_Pin = DB_H|DB_L;

   GPIO_Init(DB_PORT, &GPIO_InitStruct);

  

   //初始化寄存器的值

   GPIO_ResetBits(RS_PORT,RS_H);

   GPIO_ResetBits(DB_PORT,DB_H|DB_L);

   GPIO_ResetBits(ENABLE_PORT,ENABLE_H);

  }

  void LCD_Write4Bit(char data)

  {

   uint32_t i;

   for (i = 0; i < 4; i++)

   {

   if ((data>>i)&0x01)

   {

   GPIO_SetBits(DB_PORT,DB_H<<(i+4));

   }

   else

   {

   GPIO_ResetBits(DB_PORT,DB_H<<(i+4));

   }

   }

   GPIO_SetBits(ENABLE_PORT,ENABLE_H);

   GPIO_ResetBits(ENABLE_PORT,ENABLE_H);

   GPIO_ResetBits(DB_PORT,DB_H<<4);

  }

  void LCD_WriteCommand(char cmd)

  {

   GPIO_ResetBits(RS_PORT,RS_H);

   LCD_Write4Bit(cmd >> 4);

   LCD_Write4Bit(cmd&0x0F);

   vTaskDelay(5);

  }

  void LCD_WriteData(char dat)

  {

   GPIO_SetBits(RS_PORT,RS_H);

   LCD_Write4Bit(dat>>4);

   LCD_Write4Bit(dat&0x0F);

   vTaskDelay(5);

  }

  void LCD_ClearScreen(void)

  {

   LCD_WriteCommand(0x01);

  }

  void LCD_SetCursorPosition(char row, char col)

  {

   int row_offset[] = {0x00, 0x40, 0x14, 0x54};

   LCD_WriteCommand(0x80 | (col + row_offset[row]));

  }

  void LCD_String(char *str)

  {

   while(*str)

   {

   LCD_WriteData(*str++);

   }

  }

  在完成了相應(yīng)的函數(shù)定義之后,就可以進(jìn)行STM32與LCD1602顯示屏通信的代碼的編寫(xiě)了。具體的流程如下:

  1.使用GPIO口連接STM32和LCD模塊。

  2.首先發(fā)送LCD的復(fù)位指令。

  3.接下來(lái),進(jìn)行LCD的基本設(shè)置:設(shè)置行數(shù),顯示點(diǎn)陣,顯示光標(biāo),設(shè)定字符輸入和接著寫(xiě)數(shù)據(jù)。

  4.在具體的使用過(guò)程中,需要根據(jù)LCD窗口的大小和輸入的字符串長(zhǎng)度進(jìn)行相應(yīng)的分布和處理。

  5.在測(cè)試中,如果出現(xiàn)任何問(wèn)題,可以通過(guò)更改目錄中的一些標(biāo)志來(lái)確定問(wèn)題所在,并修復(fù)它們。

  連接LCD1602顯示屏對(duì)STM32的性能有什么影響?

  LCD1602顯示屏是一個(gè)低邊緣連接的LCD顯示器,它通過(guò)串行接口與STM32進(jìn)行連接。在使用LCD1602顯示器時(shí),STM32并未感受到任何性能上的下降。

  由于LCD1602的分辨率有限,因此處理工程時(shí)不需要使用STM32的任何高性能技術(shù)。

  總體來(lái)說(shuō),連接LCD1602顯示屏對(duì)STM32的性能沒(méi)有任何負(fù)面影響。需要注意的是,我們應(yīng)根據(jù)實(shí)際情況進(jìn)行連接并進(jìn)行測(cè)試確認(rèn),防止出現(xiàn)不必要的麻煩。

  結(jié)論

  根據(jù)以上對(duì) LCD1602顯示屏與STM32的連接方式以及性能影響的探討,我們知道了如何有效地連接它們并獲得最佳效果。在編寫(xiě)程序時(shí),需要仔細(xì)閱讀相關(guān)文檔和指南,并確定具體的步驟和參數(shù)設(shè)置。我們通過(guò)吸取其他開(kāi)發(fā)人員的經(jīng)驗(yàn)和知識(shí),進(jìn)一步提高了STEM學(xué)習(xí)的質(zhì)量和效率。所以,當(dāng)我們必須要使用LCD1602顯示屏與STM32進(jìn)行連接時(shí),我們對(duì)其完整性和正確性的理解必不可少。

QQ咨詢(xún)
客服電話(huà)
微信咨詢(xún)