一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

STM32驅(qū)動(dòng)LCD實(shí)戰(zhàn)

 怡紅公子0526 2022-05-13

前段時(shí)間寫了《STM32驅(qū)動(dòng)LCD原理》和《STM32的FSMC外設(shè)簡(jiǎn)介》兩篇文章,本文將對(duì)STM32驅(qū)動(dòng)LCD進(jìn)行實(shí)戰(zhàn)應(yīng)用。LCD是深圳市拓普微科技開發(fā)有限公司的LMT028DN,分辨率是320*240,大小2.8寸,顏色65K的彩色屏,采用的是ST7789s液晶控制IC。顏色模式是565。

01 驅(qū)動(dòng)時(shí)序

我們通常說的MCU-LCD接口,就是8080接口,8080接口的詳細(xì)介紹請(qǐng)看《STM32驅(qū)動(dòng)LCD原理》。

下面是LMT028DN給出的8080模式總線時(shí)序

下面是總線時(shí)序中的參數(shù)

時(shí)序參數(shù)

  • Tast->地址設(shè)置時(shí)間

  • Taht->地址保持時(shí)間(寫)

  • Tchw->芯片選擇高脈沖寬度

  • Tcs->芯片選擇設(shè)置時(shí)間(寫)

  • Tcsf->芯片選擇等待時(shí)間(寫)

  • Twc->寫入周期

  • Twrh->控制脈沖高電平時(shí)間

  • Twrl->控制脈沖低電平時(shí)間

  • Tdst->數(shù)據(jù)設(shè)置時(shí)間

  • Tdht->數(shù)據(jù)保持時(shí)間

根據(jù)FSMC的配置和時(shí)序圖,我們需要的3個(gè)時(shí)序參數(shù)是

 

3個(gè)重要參數(shù)

1、地址建立時(shí)間:5ns

2、地址保持時(shí)間:13ns

3、數(shù)據(jù)建立時(shí)間:13ns

 

以上數(shù)據(jù)均是滿足時(shí)序圖的最小時(shí)間,實(shí)際應(yīng)用中,不能設(shè)置成最小值,也不能大于最大值(如果有的話),以實(shí)際應(yīng)用為主,如果設(shè)置時(shí)間太快,反而不穩(wěn)定。

因?yàn)槲覀儼袻CD使用8080接口驅(qū)動(dòng)SRAM的方式,所以可以選擇FSMC的模式1和模式A,但是/RD的切換,也就是FSMC的NOE的切換,所以只能選擇模式A,觀察時(shí)序圖,讀寫時(shí)序一致,所以可以選擇讀寫一致的配置。

 

02 FSMC外設(shè)配置

FSMC外設(shè)配置代碼,具體FSMC外設(shè)解析請(qǐng)看《STM32的FSMC外設(shè)簡(jiǎn)介

readWriteTiming.FSMC_AddressSetupTime = 0x02;   //地址建立時(shí)間(ADDSET)為2個(gè)HCLK 2*1/120M=16ns
readWriteTiming.FSMC_AddressHoldTime = 0x02;   //地址保持時(shí)間(ADDHLD),16ns  
readWriteTiming.FSMC_DataSetupTime = 0x06;     //數(shù)據(jù)建立時(shí)間,50ns
readWriteTiming.FSMC_BusTurnAroundDuration = 0x00;//總線恢復(fù)時(shí)間
readWriteTiming.FSMC_CLKDivision = 0x00;// 時(shí)鐘分頻因子 
readWriteTiming.FSMC_DataLatency = 0x00;//數(shù)據(jù)產(chǎn)生時(shí)間
readWriteTiming.FSMC_AccessMode = FSMC_AccessMode_A;   //模式A
 
FSMC_NORSRAMInitStructure.FSMC_Bank = FSMC_Bank1_NORSRAM1;//  這里我們使用NE1 ,也就對(duì)應(yīng)BTCR[6],[7]。
FSMC_NORSRAMInitStructure.FSMC_DataAddressMux = FSMC_DataAddressMux_Disable;// 不復(fù)用數(shù)據(jù)地址
FSMC_NORSRAMInitStructure.FSMC_MemoryType = FSMC_MemoryType_SRAM;// FSMC_MemoryType_SRAM; 
FSMC_NORSRAMInitStructure.FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_8b;//存儲(chǔ)器數(shù)據(jù)寬度為8bit   
FSMC_NORSRAMInitStructure.FSMC_BurstAccessMode = FSMC_BurstAccessMode_Disable;// FSMC_BurstAccessMode_Disable; 
FSMC_NORSRAMInitStructure.FSMC_AsynchronousWait = FSMC_AsynchronousWait_Disable;  
FSMC_NORSRAMInitStructure.FSMC_WaitSignalPolarity = FSMC_WaitSignalPolarity_Low;
FSMC_NORSRAMInitStructure.FSMC_WrapMode = FSMC_WrapMode_Disable;
FSMC_NORSRAMInitStructure.FSMC_WaitSignalActive = FSMC_WaitSignalActive_BeforeWaitState;
FSMC_NORSRAMInitStructure.FSMC_WriteOperation = FSMC_WriteOperation_Enable;//  存儲(chǔ)器寫使能
FSMC_NORSRAMInitStructure.FSMC_WaitSignal = FSMC_WaitSignal_Disable;
FSMC_NORSRAMInitStructure.FSMC_ExtendedMode = FSMC_ExtendedMode_Disable;// 讀寫使用相同的時(shí)序
FSMC_NORSRAMInitStructure.FSMC_WriteBurst = FSMC_WriteBurst_Disable;
FSMC_NORSRAMInitStructure.FSMC_ReadWriteTimingStruct = &readWriteTiming;//讀寫時(shí)序
FSMC_NORSRAMInitStructure.FSMC_WriteTimingStruct = &readWriteTiming;//寫時(shí)序

讀寫接口代碼:

結(jié)構(gòu)體定義,這里利用了結(jié)構(gòu)體地址遞增特性

typedef struct
{
  uint8_t LCD_CMD;//用于LCD命令操作
  uint8_t LCD_DATA;//用于LCD數(shù)據(jù)操作
} LCD_TypeDef;
#define LCD_BASE        ((uint32_t)(0x60000000 | 0x0000FFFF))
#define LCD             ((LCD_TypeDef *) LCD_BAS

讀寫接口

void LMT028_Write_Cmd ( uint8_t usCmd )
{
  LCD->LCD_CMD=usCmd;  
}
void LMT028_Write_Data ( uint8_t usData )
{
  LCD->LCD_DATA = usData;
}

也可以簡(jiǎn)單明了的如下寫法

#define      FSMC_Addr_LMT028_CMD         ( ( uint32_t ) 0x60000000 )      
#define      FSMC_Addr_LMT028_DATA        ( ( uint32_t ) 0x60010000 )
 
void LMT028_Write_Cmd ( uint8_t usCmd )
{
 *( (uint32_t  * )FSMC_Addr_LMT028_CMD)=usCmd;  
}
void LMT028_Write_Data ( uint8_t usData )
{
  *( (uint32_t  * )FSMC_Addr_LMT028_DATA) = usData;
}

03 背光驅(qū)動(dòng)

LED背光驅(qū)動(dòng),根據(jù)高電平的占空比決定的,共有32個(gè)亮度等級(jí),使用PWM驅(qū)動(dòng)最為合適,通過調(diào)節(jié)占空比,調(diào)節(jié)亮度。

 

04 復(fù)位驅(qū)動(dòng)

復(fù)位腳大于10ms的低電平,然后最大170ms的高電平

05 寄存器配置

寄存器配置還是要先參考廠家給的示例demo,根據(jù)LMT028手冊(cè)進(jìn)行修改,LMT028手冊(cè)只有重要的寄存器說明,詳細(xì)的寄存器說明需要參考ST7789手冊(cè)。

 

代碼開源地址:

https://github.com/strongercjd/STM32F207VCT6

 

點(diǎn)擊查看本文所在的專輯,STM32F207教程

 

LMT028D手冊(cè)、ST7789S手冊(cè)、LMT028D的demo和ST7789S的demo等資料下載鏈接

 

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    久久99国产精品果冻传媒| 午夜精品国产精品久久久| 国产高清视频一区不卡| 久久机热频这里只精品| 国产精品超碰在线观看| 久久99午夜福利视频| 国内精品偷拍视频久久| 麻豆蜜桃星空传媒在线观看| 又黄又硬又爽又色的视频| 久久精品一区二区少妇| 国产精品内射婷婷一级二级| 欧美成人久久久免费播放| 国产一级性生活录像片| 午夜精品国产一区在线观看| 亚洲天堂国产精品久久精品| 熟女少妇久久一区二区三区| 日韩欧美亚洲综合在线| 欧美老太太性生活大片| 日韩国产亚洲欧美另类 | 亚洲国产丝袜一区二区三区四| 欧美日韩国产黑人一区| 久久黄片免费播放大全| 日韩人妻中文字幕精品| 麻豆看片麻豆免费视频| 国产精品不卡一区二区三区四区 | 国内真实露脸偷拍视频| 少妇特黄av一区二区三区| 国产传媒中文字幕东京热| 空之色水之色在线播放| 99久久国产精品成人观看| 免费人妻精品一区二区三区久久久| 日本一品道在线免费观看| 91偷拍与自偷拍精品| 欧美乱码精品一区二区三| 91日韩在线视频观看| 国产传媒免费观看视频| 免费在线播放一区二区| 国产91人妻精品一区二区三区 | 91超频在线视频中文字幕| 五月婷婷综合缴情六月| 国产美女精品午夜福利视频|