<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

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

3天內不再提示

基于STM32物聯網開發板(4)--LCD屏

嵌入式技術 ? 來源:嵌入式技術 ? 作者:嵌入式技術 ? 2023-05-11 17:06 ? 次閱讀

1.概述

  • 屏幕尺寸為1.3寸,分辨率240*240,顏色格式RGB565,驅動IC:ST7789VW;
  • 超大可視角度:大于160°(顯示屏中可視角度最大的一種屏幕);
  • 寬電壓供電(3V~5V),兼容3.3V和5V電平邏輯,無需電平轉換芯片;
  • 采用7線制SPI接口;
  • 工作溫度范圍為工業級(-20℃~60℃);
  • 軍工級工藝標準,長期穩定工作;
poYBAGRcrgKAa7NMAADxLW4Ok5A633.png ?

硬件接口:

引腳 說明
LEDK PB0背光
CS PA4片選
SCL PA5時鐘
SDA PA7主機輸出

RES

PB1復位腳(電平復位)

D/C

PC4數據命令選擇腳

2.通訊協議

ST7789VW是一款用于262K彩色圖形型TFT-LCD的單片機控制器/驅動器。它由720個源極線和320個柵極線驅動電路組成。該芯片能夠直接連接到外部微處理器,并接受8位/9位/16位/18位并行接口。顯示數據可以存儲在240x320x18位的片上顯示數據RAM。它可以執行顯示數據RAM讀/寫操作,無需外部操作時鐘,以最大限度地減少功耗。此外,由于集成電源驅動液晶所必需的電路;可以制造具有最少部件的顯示系統。

2.1 SPI接口時序

本次LCD屏幕采用SPI時序驅動,時序圖如下:

poYBAGRcrmuANJwdAADmq1svsYo851.png

上升沿采樣數據,下降沿發送數據。

4線串行接口包括串行時鐘SCLK,串行數據SDIN,數據命令選擇D/C,片選CS。

u8 SPI_WriteReadByte(u8 dat_tx)
{
	u8 data_rx=0;
	SPI_CLK=0;//空閑電平為低電平
	for(i=0;i<8;i++)
	{
		SPI_CLK=0;//開始發送數據(主機和從機都發送數據)
		if(dat_tx&0x80)SPI_MOSI=1;
		else SPI_MOSI=0;
		SPI_CLK=1;//數據發送完成,開始讀取數據
		dat_tx<<=1;//準備發送下一位數據
		//0x23--- 0010 0011
		data_rx<<=1;//默認讀取到的數據為0
		if(SPI_MISO)data_rx=data_rx|0x01;
	}
	SPI_CLK=0;//空閑電平為低電平
	return data_rx;
}

2.2 寫數據和寫命令

當采用SPI接口驅動時,D/C引腳作為數據命令選擇腳,D/C=0時讀寫命令,D/C=1時讀寫數據。

/************************************************************
函數說明:LCD寫入數據
入口數據:dat 寫入的數據
返回值:  無
**************************************************************/
void LCD_WR_DATA(u16 dat)
{
    OLED_CS(0);
	OLED_DC_Set();//寫數據
	LCD_Writ_Bus(dat>>8);
	LCD_Writ_Bus(dat);
    OLED_CS(1);
}

/****************************************************
函數說明:LCD寫入命令
入口數據:dat 寫入的命令
返回值:  無
*****************************************************/
void LCD_WR_REG(u8 dat)
{
    OLED_CS(0);
	OLED_DC_Clr();//寫命令
	LCD_Writ_Bus(dat);
    OLED_CS(1);
}

3.常用命令介紹

(1)設置屏幕掃描方向0x36

poYBAGRcrtyADwB8AAB4yl5Jqyw502.pngpoYBAGRcrwWAaBcqAADHLsTwgkI628.png

(2)設置列(Column)地址0x2A

0x2A指令用于設置列的起始地址和結束地址,XS<=XE。

poYBAGRcryKAQDKwAAE8Ue6jgVU178.png

(3)設置行(ROW)地址0x2B

0x2B指令用于設置行的起始地址和結束地址,YS<=YE。

pYYBAGRcrzyAIpB6AAExcJuTe54025.png

(4)寫GRAM指令0x2C

此命令用于將數據從MCU傳輸到幀存儲器。接受此命令后,列寄存器和頁寄存器將重置為起始列/起始頁面位置。起始列/起始頁的位置根據MADCTL設置而不同。發送任何其他命令都可以停止幀寫入。

pYYBAGRcr12AN0PLAAEFceA5Rwo787.png

4.ST7789驅動序列

void Lcd_Init(void)
{
	OLED_RST_Clr();
	Delay_Ms(200);
	OLED_RST_Set();
	Delay_Ms(20);  
  //************* Start Initial Sequence **********// 
  LCD_WR_REG(0x36);
  if(USE_HORIZONTAL==0)LCD_WR_DATA8(0x00);//橫屏
  else if(USE_HORIZONTAL==1)LCD_WR_DATA8(0xC0);//橫屏
  else if(USE_HORIZONTAL==2)LCD_WR_DATA8(0x70);//豎屏
  else LCD_WR_DATA8(0xA0);//豎屏

  LCD_WR_REG(0x3A); 
  LCD_WR_DATA8(0x05);

  LCD_WR_REG(0xB2);
  LCD_WR_DATA8(0x0C);
  LCD_WR_DATA8(0x0C);
  LCD_WR_DATA8(0x00);
  LCD_WR_DATA8(0x33);
  LCD_WR_DATA8(0x33); 

  LCD_WR_REG(0xB7); 
  LCD_WR_DATA8(0x35);  

  LCD_WR_REG(0xBB);
  LCD_WR_DATA8(0x19);

  LCD_WR_REG(0xC0);
  LCD_WR_DATA8(0x2C);

  LCD_WR_REG(0xC2);
  LCD_WR_DATA8(0x01);

  LCD_WR_REG(0xC3);
  LCD_WR_DATA8(0x12);   

  LCD_WR_REG(0xC4);
  LCD_WR_DATA8(0x20);  

  LCD_WR_REG(0xC6); 
  LCD_WR_DATA8(0x0F);    

  LCD_WR_REG(0xD0); 
  LCD_WR_DATA8(0xA4);
  LCD_WR_DATA8(0xA1);

  LCD_WR_REG(0xE0);
  LCD_WR_DATA8(0xD0);
  LCD_WR_DATA8(0x04);
  LCD_WR_DATA8(0x0D);
  LCD_WR_DATA8(0x11);
  LCD_WR_DATA8(0x13);
  LCD_WR_DATA8(0x2B);
  LCD_WR_DATA8(0x3F);
  LCD_WR_DATA8(0x54);
  LCD_WR_DATA8(0x4C);
  LCD_WR_DATA8(0x18);
  LCD_WR_DATA8(0x0D);
  LCD_WR_DATA8(0x0B);
  LCD_WR_DATA8(0x1F);
  LCD_WR_DATA8(0x23);

  LCD_WR_REG(0xE1);
  LCD_WR_DATA8(0xD0);
  LCD_WR_DATA8(0x04);
  LCD_WR_DATA8(0x0C);
  LCD_WR_DATA8(0x11);
  LCD_WR_DATA8(0x13);
  LCD_WR_DATA8(0x2C);
  LCD_WR_DATA8(0x3F);
  LCD_WR_DATA8(0x44);
  LCD_WR_DATA8(0x51);
  LCD_WR_DATA8(0x2F);
  LCD_WR_DATA8(0x1F);
  LCD_WR_DATA8(0x1F);
  LCD_WR_DATA8(0x20);
  LCD_WR_DATA8(0x23);
  LCD_WR_REG(0x21); 
  LCD_WR_REG(0x11); 
  LCD_WR_REG(0x29);//開啟顯示 
  LCD_Clear(WHITE);//清屏
  OLED_BLK_Set();//開背光 
} 

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

    關注

    34

    文章

    4286

    瀏覽量

    164463
  • 接口
    +關注

    關注

    33

    文章

    7737

    瀏覽量

    148699
  • 物聯網
    +關注

    關注

    2873

    文章

    41822

    瀏覽量

    359334
  • 開發板
    +關注

    關注

    25

    文章

    4506

    瀏覽量

    94458
收藏 人收藏

    評論

    相關推薦

    飛凌嵌入式-ElfBoard-項目分享|基于ELF 1S開發板完成的聯網開源項目

    工程師借助ELF 1S開發板完成的嵌入式聯網項目,見證智慧與技術的火花。 關于這個項目的思維導圖,如下圖所示: 接下來,將會從云-網-邊-端的
    發表于 05-16 09:12

    STM32F429開發板只能插電腦USB供電接口LCD才能顯示,為什么?

    手中一塊STM32F429 Disvovery開發板,在插入電腦USB接口的情況下,LCD正常顯示圖片內容。將USB供電線插到充電寶、充電器上就無法正常顯示圖片。請問這是什么問題?
    發表于 04-29 07:04

    STM32U5,STM32WB及STM32L4開發板,哪個開發板擁有較多數量的ADC?

    請問,我現在需要開發一個項目,在這個項目中需要使用較多數量的傳感器(至少8個),這些傳感器需要進行信號采集,現在在使用STM32U5,STM32WB及STM32L4芯片的
    發表于 03-20 08:01

    盤點那些硬件+項目學習套件:Hi3861鴻蒙開發板及入門常見問題解答

    華清遠見20歲了~過去3年里,華清遠見研發中心針對個人開發板業務,打造了多款硬件+項目學習套件,涉及STM32單片機、嵌入式、聯網、人工智能、鴻蒙、ESP32、阿里云IoT等多技術方
    發表于 02-01 16:55

    盤點那些硬件+項目學習套件:STM32MP157 Linux開發板及入門常見問題解答

    華清遠見20歲了~過去3年里,華清遠見研發中心針對個人開發板業務,打造了多款硬件+項目學習套件,涉及STM32單片機、嵌入式、聯網、人工智能、鴻蒙、ESP32、阿里云IoT等多技術方
    發表于 02-01 14:25

    STM32開發板能截嗎?

    STM32開發板能截嘛?
    發表于 10-17 07:15

    Banana Pi 開源硬件基于ESP32-S3開發聯網開發板系列

    BPI-Centi-S3 是一個板載1.9英寸彩屏的小尺寸ESP32-S3開發板,適合用于彩色顯示,交互控制,無線通信,傳感器數據采集等聯網綜合應用項目的開發。使用Espressif
    發表于 09-27 17:10

    基于STM32開發板點亮LCD例程

    網絡上配套STM32開發板有很多LCD例程,主要是TFT LCD跟OLED的。從這些例程,大家都能學會如何點亮一個LCD。但這代碼都有下面這
    的頭像 發表于 09-24 11:54 ?1265次閱讀
    基于<b class='flag-5'>STM32</b><b class='flag-5'>開發板</b>點亮<b class='flag-5'>LCD</b>例程

    Banana Pi BPI-PicoW 和 BPI-Leaf-S3 創客教育與聯網開發板介紹

    BPI-PicoW 和 BPI-Leaf-S3 創客教育與聯網開發板 今年早些時候,Banana Pi 開源社區推出了一系列新的微控制器開發板 BPI-PicoW 和 BPI-Lea
    發表于 09-07 10:05

    【米爾-STM32MP135開發板-入門級MPU試用】米爾-STM32MP135開發板開發環境搭建

    今天為大家做一下米爾-STM32MP135開發板的環境搭建方法,首先先對開發板和核心做個介紹: 米爾-STM32MP135
    發表于 08-17 00:07

    【IoT畢設】機智云聯網平臺+arduino開發板+呼吸檢測系統

    ,則稱為逆壓電效應。 2 系統設計 本設計利用壓電薄膜傳感器采集人體呼吸信號,經過電荷放大模塊以及Arduino開發板,將最終得到的電壓值顯示在LCD上;并通過LabVIEW顯示波形變化,可以完成
    發表于 06-26 18:55

    STM32LCD驅動編寫思路

    STM32開發板有很多配套LCD例程,如下圖就是開發板上最常見的一種TFTLCD屏。
    的頭像 發表于 06-20 09:16 ?872次閱讀
    <b class='flag-5'>STM32</b>的<b class='flag-5'>LCD</b>驅動編寫思路

    iTOP-STM32MP157開發板開發學習一兩用

    處理器 iTOP-STM32MP157開發板采用ST推出的雙核cortex-A7+單核cortex-M4異構處理器,既可用Linux、又可以用于STM32單片機
    發表于 06-07 10:54

    【CW32飯盒派開發板試用體驗】開發板簡單介紹和開發板初體驗

    。開發板配有完善的進階例程及各種技術支持服務。 這塊開發板有以下特點: 48PIN MCU:CW32F030C8T6位微控制器,64M主頻;4針SWD下載仿真接口;一個DC口,開發板
    發表于 05-22 10:56

    【CW32飯盒派開發板試用體驗】開發板簡單介紹及初體驗

    。開發板配有完善的進階例程及各種技術支持服務。 這塊開發板有以下特點: 48PIN MCU:CW32F030C8T6位微控制器,64M主頻;4針SWD下載仿真接口;一個DC口,開發板
    發表于 05-22 10:47
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>