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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

STM32入門學(xué)習(xí)筆記之TFTLCD顯示實(shí)驗(yàn)3

jf_78858299 ? 來源:滑小稽筆記 ? 作者:電子技術(shù)園地 ? 2023-02-16 11:05 ? 次閱讀

(3)SRAM/NOR 閃存寫時(shí)序寄存器:FSMC_BWTRx(x=1~4)

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
- ACCMOD DATLAT CLKDIV BUSTURN
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
DATAST ADDHLD ADDSET

Bit 29~Bit 28:訪問模式(這2位只在FSMC_BCRx寄存器的EXTMOD位為1時(shí)起作用)

00:訪問模式A

   01:訪問模式B

   10:訪問模式C

   11:訪問模式D

Bit 27~Bit 24:數(shù)據(jù)保持時(shí)間

0000:第一個(gè)數(shù)據(jù)的保持時(shí)間為2個(gè)CLK時(shí)鐘周期

   ……

   1111:第一個(gè)數(shù)據(jù)的保持時(shí)間為17個(gè)CLK時(shí)鐘周期(默認(rèn))

Bit 23~Bit 20:時(shí)鐘分頻比

0000:保留

   0001:1個(gè)CLK周期=2個(gè)HCLK周期

   0010:1個(gè)CLK周期=3個(gè)HCLK周期

   ……

   1111:1個(gè)CLK周期=16個(gè)HCLK周期(默認(rèn))

Bit 19~Bit 16:總線恢復(fù)時(shí)間

0000:總線恢復(fù)時(shí)間=1個(gè)HCLK時(shí)鐘周期

   ……

   1111:總線恢復(fù)時(shí)間=16個(gè)HCLK時(shí)鐘周期(默認(rèn))

Bit 15~Bit 8:數(shù)據(jù)保持時(shí)間

00000000:保留

   00000001:DATAST保持時(shí)間=2個(gè)HCLK時(shí)鐘周期

   00000010:DATAST保持時(shí)間=3個(gè)HCLK時(shí)鐘周期

   ……

   11111111:DATAST保持時(shí)間=256個(gè)HCLK時(shí)鐘周期(默認(rèn))

Bit 7~Bit 4:地址保持時(shí)間

0000:ADDHLD保持時(shí)間=1個(gè)HCLK時(shí)鐘周期

   ……

   1111:ADDHLD保持時(shí)間=16個(gè)HCLK時(shí)鐘周期(默認(rèn))

Bit 3~Bit 0:地址建立時(shí)間

0000:ADDSET建立時(shí)間=1個(gè)HCLK時(shí)鐘周期

   ……

   1111:ADDSET建立時(shí)間=16個(gè)HCLK時(shí)鐘周期(默認(rèn))

10.4 實(shí)驗(yàn)例程

現(xiàn)有一塊驅(qū)動(dòng)芯片為5510的LCD驅(qū)動(dòng)芯片,廠家提供初始化例程,使用STM32的FSMC功能驅(qū)動(dòng)屏幕顯示字符串,連接關(guān)系如下表所示。

片選CS:FSMC_NE4

寫控制WR:FSMC_NWE

讀控制RD:FSMC_NOE

數(shù)據(jù)命令控制RS:FSMC_A6

背光:PB0

16位并行數(shù)據(jù):FSMC_D15~FSMC_D0

(1)創(chuàng)建lcd.h,并輸入以下代碼。

#ifndef _LCD_H_
#define _LCD_H_
#include "sys.h"
//LCD地址結(jié)構(gòu)體
typedef struct
{
  vu16 LCD_REG ;
  vu16 LCD_RAM ;
}LCD_TypeDef ;
#define LCD_BASE    ( ( u32 )( 0x6C000000|0x000007FE ))
#define LCD        ( ( LCD_TypeDef* ) LCD_BASE )
//LCD重要參數(shù)
typedef struct  
{                        
  u16 width ;                    //LCD寬度
  u16 height ;                    //LCD高度
  u8 dir ;                      //橫屏豎屏控制
  u16 wramcmd ;                  //開始寫gram指令
  u16 setxcmd ;                    //設(shè)置x坐標(biāo)指令
  u16 setycmd ;                    //設(shè)置y坐標(biāo)指令 
}_lcd_dev ;
extern _lcd_dev lcddev ;                  //管理LCD重要參數(shù)
//LCD的畫筆顏色和背景色
extern u16 POINT_COLOR ;                  //畫筆顏色
extern u16 BACK_COLOR ;                  //背景顏色
#define  LCD_LED PBout(0)                  //LCD背光
//畫筆顏色
#define WHITE            0xFFFF
#define BLACK            0x0000    
#define BLUE            0x001F  
#define BRED             0XF81F
#define GRED        0XFFE0
#define GBLUE       0X07FF
#define RED              0xF800
#define MAGENTA          0xF81F
#define GREEN            0x07E0
#define CYAN             0x7FFF
#define YELLOW           0xFFE0
#define BROWN        0XBC40              //棕色
#define BRRED        0XFC07              //棕紅色
#define GRAY         0X8430              //灰色
void LCD_Init( void ) ;                    //初始化
void LCD_Clear( u16 Color ) ;                //清屏
void LCD_Fast_DrawPoint( u16 x, u16 y, u16 color ) ;      //快速畫點(diǎn)
void LCD_ShowString( u16 x, u16 y, u8 *p ) ;          //顯示一個(gè)字符串
#endif

注1 :關(guān)于LCD_BASE地址的定義部分,其中0x6C000000代表FSMC的SRAM塊4的開始地址,0x000007FE則代表A10的偏移地址,7FE H換算成2進(jìn)制就是01111111 1110,由于FSMC在16位數(shù)據(jù)總線狀態(tài)下,地址需要右移一個(gè)字節(jié),所以映射到A10A0上的地址數(shù)據(jù)就是011 1111 1111,A0恰好就是0,如果此時(shí)16位地址加1,對應(yīng)的8位地址就是加2,也就是7FE+2=800,映射到A10A0上的地址就是100 0000 0000,即A10變?yōu)榱?,這就實(shí)現(xiàn)了通過A10來控制RS的效果。我們定義的結(jié)構(gòu)體也可以發(fā)現(xiàn),LCD_REG對應(yīng)的就是0x6C000000+0x000007FE,而LCD_RAM對應(yīng)的就變成了0x6C000000+0x000007FE+0x00000002。

注2 :結(jié)構(gòu)體_lcd_dev則定義了一些LCD參數(shù),比如高度,寬度,設(shè)置命令,可以通過改變宏定義的方式來改變控制器的輸出。

注3 :顏色數(shù)據(jù)。

目前的顏色數(shù)據(jù)都有RGB888,RGB666和RGB565格式,代表了R,G和B的分辨率,其中RGB888代表紅,綠,藍(lán)都是8位,可以表示16777216種顏色,但是受制于TFTLCD的數(shù)據(jù)總線寬度只有16位,所以只能夠采用RGB565模式,這種模式代表紅色和藍(lán)色都是5位分辨率,綠色6位分辨率,這種模式中可以最多表示65536種顏色。文件中宏定義的顏色數(shù)據(jù)就是根據(jù)RGB888格式轉(zhuǎn)換而來,一般都是放棄低2位和低1位,例如RGB888模式中某種顏色為11011110 11011110 11011111,那么轉(zhuǎn)換為RGB565模式就變成了11011 110111 11011,換成16進(jìn)制就是1101 1110 1111 1011=DEFB H。
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • led
    led
    +關(guān)注

    關(guān)注

    240

    文章

    22999

    瀏覽量

    654776
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6026

    文章

    44456

    瀏覽量

    630988
  • 數(shù)碼管
    +關(guān)注

    關(guān)注

    32

    文章

    1873

    瀏覽量

    90732
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    stm32 mini板TFTLCD顯示模塊源程序

    實(shí)驗(yàn)器材:MiniSTM32F103開發(fā)板V3版本 實(shí)驗(yàn)目的:學(xué)習(xí)彩色TFTLCD
    發(fā)表于 07-02 08:49

    stm32 mini板TFTLCD顯示模塊源程序

    實(shí)驗(yàn)器材:MiniSTM32F103開發(fā)板V3版本 實(shí)驗(yàn)目的:學(xué)習(xí)彩色TFTLCD
    發(fā)表于 07-06 08:49

    如何使用STM32F1的FSMC接口控制TFTLCD顯示

    以前我們用 51 單片機(jī)控制 TFTLCD(TFT 液晶屏)時(shí),使用的是 IO 口模擬80 接口時(shí)序。這次我們來學(xué)習(xí)如何使用 STM32F1 的 FSMC(靈活的靜態(tài)存儲(chǔ)控制器)接口控制
    發(fā)表于 03-01 07:44

    利用STM32連接ALIENTEK TFTLCD模塊實(shí)現(xiàn)TFTLCD模塊的顯示

    實(shí)驗(yàn)利用戰(zhàn)艦STM32開發(fā)板連接ALIENTEK TFTLCD模塊,實(shí)現(xiàn)TFTLCD模塊的顯示,下載成功后,通過把LCD模塊插入
    發(fā)表于 10-07 07:50

    學(xué)習(xí)筆記12864串行顯示

    學(xué)習(xí)筆記12864串行顯示講解,很好的資料下載吧。
    發(fā)表于 01-13 16:09 ?0次下載

    ALIENTEK_MINISTM32_實(shí)驗(yàn)10_TFT_LCD顯示

    ALIENTEK MINISTM32 實(shí)驗(yàn)10 TFTLCD顯示實(shí)驗(yàn),很好的資料,快來下載吧
    發(fā)表于 02-19 11:37 ?45次下載

    STM32各模塊學(xué)習(xí)筆記

    STM32個(gè)模塊學(xué)習(xí)筆記 目錄 STM32筆記之一 中斷優(yōu)先級(jí).......................................
    發(fā)表于 11-30 03:32 ?3120次閱讀

    STM32學(xué)習(xí)——TFTLCD原理

    STM32學(xué)習(xí)——TFTLCD原理一.TFTLCD 簡介TFT-LCD 即薄膜晶體管液晶顯示器(Thin Film Transistor-L
    發(fā)表于 12-05 17:21 ?15次下載
    <b class='flag-5'>STM32</b><b class='flag-5'>學(xué)習(xí)</b>——<b class='flag-5'>TFTLCD</b>原理

    STM32CubeMX系列|TFTLCD顯示

    TFTLCD顯示1. TFTLCD顯示簡介2. 硬件設(shè)計(jì)3. 軟件設(shè)計(jì)3.1 STM32Cube
    發(fā)表于 12-17 18:38 ?19次下載
    <b class='flag-5'>STM32</b>CubeMX系列|<b class='flag-5'>TFTLCD</b><b class='flag-5'>顯示</b>

    基于STM32 的直流電機(jī)PID調(diào)速 及TFTLCD屏幕顯示速度值及速度曲線

    學(xué)習(xí)STM32有一段時(shí)間了,完整的做了一套系統(tǒng),記錄一下。開發(fā)目標(biāo):1、STM32 輸出PWM控制直流電機(jī)轉(zhuǎn)速。 2、采用增量式PID控制方法調(diào)節(jié)電機(jī)轉(zhuǎn)速。 3
    發(fā)表于 01-14 11:27 ?32次下載
    基于<b class='flag-5'>STM32</b> 的直流電機(jī)PID調(diào)速 及<b class='flag-5'>TFTLCD</b>屏幕<b class='flag-5'>顯示</b>速度值及速度曲線

    UM1766_STM32CubeF3入門STM32F3系列

    UM1766_STM32CubeF3入門STM32F3系列
    發(fā)表于 11-22 08:22 ?6次下載
    UM1766_<b class='flag-5'>STM32CubeF3</b><b class='flag-5'>入門</b><b class='flag-5'>之</b><b class='flag-5'>STM32F3</b>系列

    STM32入門學(xué)習(xí)筆記TFTLCD顯示實(shí)驗(yàn)1

    之前在51為核心的系統(tǒng)里面,常用的顯示器件有LED,數(shù)碼管,LCD1602和LCD12864,這些器件都有一個(gè)共同的特點(diǎn),那就是只有一個(gè)顏色,沒有辦法顯示彩色圖片,為了顯示彩色圖片,我們引入了TFT
    的頭像 發(fā)表于 02-16 11:05 ?4026次閱讀
    <b class='flag-5'>STM32</b><b class='flag-5'>入門</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>筆記</b><b class='flag-5'>之</b><b class='flag-5'>TFTLCD</b><b class='flag-5'>顯示</b><b class='flag-5'>實(shí)驗(yàn)</b>1

    STM32入門學(xué)習(xí)筆記TFTLCD顯示實(shí)驗(yàn)2

    之前在51為核心的系統(tǒng)里面,常用的顯示器件有LED,數(shù)碼管,LCD1602和LCD12864,這些器件都有一個(gè)共同的特點(diǎn),那就是只有一個(gè)顏色,沒有辦法顯示彩色圖片,為了顯示彩色圖片,我們引入了TFT
    的頭像 發(fā)表于 02-16 11:05 ?686次閱讀

    STM32入門學(xué)習(xí)筆記TFTLCD顯示實(shí)驗(yàn)4

    之前在51為核心的系統(tǒng)里面,常用的顯示器件有LED,數(shù)碼管,LCD1602和LCD12864,這些器件都有一個(gè)共同的特點(diǎn),那就是只有一個(gè)顏色,沒有辦法顯示彩色圖片,為了顯示彩色圖片,我們引入了TFT
    的頭像 發(fā)表于 02-16 11:06 ?971次閱讀

    基于STM32單片機(jī)TFTLCD顯示使用庫文件設(shè)計(jì)源代碼

    基于STM32單片機(jī)TFTLCD顯示使用庫文件設(shè)計(jì)源代碼
    發(fā)表于 04-26 14:54 ?1次下載