色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

STM32CubeMx之FSMC靈活靜態存儲器控制器

嵌入式技術 ? 來源:嵌入式技術 ? 作者:嵌入式技術 ? 2022-05-30 09:25 ? 次閱讀

1.簡介

?FSMC模塊能夠與同步或異步存儲器和16位PC存儲器卡接口,它的主要作用是:
● 將AHB傳輸信號轉換到適當的外部設備協議
● 滿足訪問外部設備的時序要求
所有的外部存儲器共享控制器輸出的地址、數據和控制信號,每個外部設備可以通過一個唯一的片選信號加以區分。 FSMC在任一時刻只訪問一個外部設備。
FSMC具有下列主要功能:
● 具有靜態存儲器接口的器件包括:
? ─ 靜態隨機存儲器(SRAM)
? ─ 只讀存儲器(ROM)
? ─ NOR閃存
? ─ PSRAM(4個存儲器塊)

● 兩個NAND閃存塊,支持硬件ECC并可檢測多達8K字節數據
● 16位的PC卡兼容設備
● 支持對同步器件的成組(Burst)訪問模式,如NOR閃存和PSRAM
● 8或16位數據總線
FSMC管理1GB空間,擁有4個Bank連接外部存儲器,每個Bank有獨立的片選信號,每個Bank有獨立的時序配置,同步批量傳輸訪問最高頻率可達60MHz
支持的存儲器類型:
靜態地址映射存儲器:SRAM、PSRAM、NOR/ONENAND、ROM
LCD接口:支持8080和6800模式
NANDFlash和16位PCCard

2.外掛設備地址映射

pYYBAGKTf62AOVN-AAHcF6hKG8I493.pngpoYBAGKTf_GAYyz6AAIGy-UqnYI637.png

NOR/PSRAM是”static memory map”設備: 256M字節的空間需要28根地址線尋址,HADDR表示內部AHB地址線;
HADDR[27:26]用來對4個region尋址;
HADDR[25:0]用來對外部地址FSMC[25:0];
無論8位/16位寬度,FSMC_A[0]始終連接外部設備地址A[0]
當外接設備16位數據寬度:HADDR[25:1]–>FSMC_A[24:0]
當外接設備8位數據寬度:HADDR[25:0]–>FSMC_A[25:0]

poYBAGKTg3uAPTfhAAD5NzLmbcs205.png#pic_center

3.LCD硬件接口

poYBAGKTgCyAAmI6AAQCN-Trsxo095.png

LCD屏
?分辨率:320*480;3.5寸;
?驅動方式:8080并口時序(Intel公司),16位真彩色(RGB565);
?屏幕驅動IC:NT35310;

pYYBAGKTgIKAP2jrAABzs-rp6cI825.png

4.軟件設置

?1.芯片選擇

poYBAGKTgJ2AfplTAAGGsV4_t44569.png

2. 時鐘配置

在這里插入圖片描述pYYBAGKTgLqAYpIrAADd010he_s984.png

3.FSMC配置
?根據LCD硬件接口可知LCD接在FSMC_Blank1的region4上。

pYYBAGKTgQWAFIeQAAM0gaFeqUo471.pngpYYBAGKTgROAcWfuAADPhfES4Ww313.png

5 代碼生成

?1.FSMC配置代碼

pYYBAGKTgVWAEUIDAAWpru7EKik372.png

FSMC寄存器配置可參考STM32中文參考手冊第19章靈活靜態存儲器控制器(FSMC)。

poYBAGKTgZWAbJZRAAGrJsRyJGg405.pngpYYBAGKTgaaAKZk7AAGk_ZxIbT8135.png

2.LCD顯示圖片和顯示漢字示例
(1) 讀寫數據

根據LCD硬件接口時序8080,要想實現對LCD屏數據顯示則需要完成LCD寫數據和寫寄存器,LCD接在FSMC_Blank1的region4上,通過地址線FSMC_A10作為數據命令選擇線,通過FSMC地址映射關系可知:
讀寫寄存器地址:0x6c000000
讀寫數據地址:0x6c000800
寫寄存器和寫數據代碼如下:

typedef unsigned char u8;
typedef unsigned short u16;
typedef unsigned int u32;
#define LCD_WR_REG *((volatile u16 *)0x6c000000)
#define LCD_WR_DAT *((volatile u16 *)0x6c000800)	
/*LCD寫寄存器*/
static void LcdWriteReg(u16 reg)
{
	LCD_WR_REG=reg;
}
/*LCD寫數據*/
static void LcdWriteData(u16 dat)
{
	LCD_WR_DAT=dat;
}

(2)設置光標指令0X2A 和0X2B
該指令是頁地址設置指令,在從左到右,從上到下的掃描方式(默認)下面,該指令用于設置縱坐標( x 坐標)

poYBAGKTg3-AFLshAAEUMUjmm3Q823.png#pic_center

在默認掃描方式時,該指令用于設置 x 坐標,該指令帶有 4 個參數,實際上是 2 個坐標值: SC 和 EC,即列地址的起始值和結束值, SC 必須小于等于 EC,且 0≤SC/EC≤239。一般在設置 x 坐標的時候,我們只需要帶 2個參數即可,也就是設置 SC 即可,因為如果 EC 沒有變化,我們只需要設置一次即可,從而提高速度。

0X2B 指令,該指令是頁地址設置指令,在從左到右,從上到下的掃描方式(默認)下面,該指令用于設置縱坐標( y 坐標)。

pYYBAGKTg4CAbijiAAEAMnPAyGo118.png#pic_center
/*設置光標*/
static void LCD_SetCursor(u16 x,u16 y)
{
	LcdWriteReg(0x2A);//設置x坐標
	LcdWriteData(x>>8);
	LcdWriteData(x&0xff);
	LcdWriteReg(0x2B);//設置y坐標
	LcdWriteData(y>>8);
	LcdWriteData(y&0xff);	
}

(3)寫入數據到GRAM指令0x2C
??該指令是寫 GRAM 指令,在發送該指令之后,我們便可以往 LCD 的 GRAM 里面寫入顏色數據了,該指令支持連續寫 (地址自動遞增)。

在這里插入圖片描述
/*清屏函數*/
void LCD_Clear(u16 c)
{
	u32 i=0;
	LCD_SetCursor(0,0);//設置光標
	LcdWriteReg(0x2c);//開始寫數據到GRAM
	for(i=0;i<320*480;i++)
	{
		LcdWriteData(c);
	}
}

(4)顯示圖片
??通過圖片取模工具Img2Lcd進行圖片取模:

pYYBAGKTgmaAVCkfAA6BaLQRpTU001.png

?將生成的圖片數據放到工程中:

pYYBAGKTgn6ARXRDAAGzVgrNpdA198.png
/*lcd圖片顯示*/
void LCD_DrawBMP(u16 x,u16 y,u16 w,u16 h,const u8 *buff)
{
	u16 i,j;
	u16 temp;
	LcdWriteReg(0x2A);//設置x坐標
	//設置x的起始坐標
	LcdWriteData(x>>8);
	LcdWriteData(x&0xff);
	//設置x的結束坐標
	LcdWriteData((x+w)>>8);
	LcdWriteData((x+w)&0xff);
	LcdWriteReg(0x2B);//設置y坐標
	//設置y的起始坐標
	LcdWriteData(y>>8);
	LcdWriteData(y&0xff);		
	//設置y的結束坐標
	LcdWriteData((y+h)>>8);
	LcdWriteData((y+h)&0xff);		
	LcdWriteReg(0x2c);//開始寫數據到GRAM
	for(i=0;i>8);
	LcdWriteData(0);
	//設置x的結束坐標
	LcdWriteData(320>>8);
	LcdWriteData(320&0xff);
	LcdWriteReg(0x2B);//設置y坐標
	//設置y的起始坐標
	LcdWriteData(0>>8);
	LcdWriteData(0);		
	//設置y的結束坐標
	LcdWriteData(480>>8);
	LcdWriteData(480&0xff);			
}
;i++)>

(5)漢字顯示

pYYBAGKTgvmAc3SNAARpDWfFFAc215.png

??通過PCtoLCD2002進行漢字取模,取模方式:高位在前,逐行式。

/*
漢字取模方式:逐列式,高位在前,高度需保證為8個倍數
*/
void LCD_Display_Font(u16 x,u16 y,u8 size,u8 *font,u16 c)
{	
	u16 i,j;
	u8 temp;
	u16 x0=x;
	for(i=0;i*size>

6 示例效果

poYBAGKTgyOAF_sRAAKWKfmZF2Q710.pngpYYBAGKTgzmAGlBdAAkpTGHcwrI665.png

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

    關注

    34

    文章

    4424

    瀏覽量

    167398
  • 存儲器
    +關注

    關注

    38

    文章

    7484

    瀏覽量

    163762
  • STM32
    +關注

    關注

    2270

    文章

    10895

    瀏覽量

    355729
  • FSMC
    +關注

    關注

    0

    文章

    55

    瀏覽量

    38134
收藏 人收藏

    評論

    相關推薦

    STM32接口中FSMC/FMC難點問題理解

    FSMC,即靈活靜態存儲控制器,能夠與同步或異步存儲器和 16 位 PC
    的頭像 發表于 04-19 12:36 ?1.7w次閱讀
    <b class='flag-5'>STM32</b>接口中<b class='flag-5'>FSMC</b>/FMC難點問題理解

    STM32FSMC外設簡介

    Flexible static memory controller(FSMC)靈活靜態存儲控制器FS
    的頭像 發表于 07-11 16:07 ?1894次閱讀
    <b class='flag-5'>STM32</b>的<b class='flag-5'>FSMC</b>外設簡介

    淺析STM32 FSMC操作LCD的過程

    FSMC稱為靈活靜態存儲器,它能夠與同步或異步存儲器和16位PC存儲器卡連接,
    發表于 07-22 14:46 ?3959次閱讀
    淺析<b class='flag-5'>STM32</b> <b class='flag-5'>FSMC</b>操作LCD的過程

    存儲控制器FSMC與觸摸屏介紹

    FSMC(Flexible Static Memory Controller,靈活靜態存儲控制器)是S
    發表于 07-27 17:23 ?4475次閱讀
    <b class='flag-5'>存儲</b><b class='flag-5'>控制器</b><b class='flag-5'>FSMC</b>與觸摸屏介紹

    STM32FSMC詳解

    FSMC詳解1、FSMC簡介:FSMC,即靈活靜態存儲控制
    發表于 12-06 06:25

    【技術精選】嵌入式STM32原創征文活動精選文章

    網絡協議棧移植步驟與方案STM32CubeMX定時PWM輸出STM32CubeMxSD卡驅動STM
    發表于 07-27 18:26

    STM32F2靈活靜態存儲控制器FSMC

    FSMC特性簡介和FSMC框圖外掛存儲器地址映射 AHB接口 NOR/PSRAM控制器 接口信號 支持的存儲器和訪問方式異步傳輸 同步突發傳
    發表于 09-13 06:54

    STM32FSMC機制FlaSh存儲器擴展

    STM32FSMC機制FlaSh存儲器擴展  引 言   STM32是ST(意法半導體)公司推出的基于ARM內核Cortex-M3的32位微控制器系列。Cortex-M3內核是為
    發表于 11-27 10:07 ?1525次閱讀
    <b class='flag-5'>STM32FSMC</b>機制FlaSh<b class='flag-5'>存儲器</b>擴展

    F2產品技術培訓_13.外部靜態存儲器控制器FSMC

    F2產品技術培訓_13.外部靜態存儲器控制器FSMC
    發表于 03-15 14:41 ?11次下載

    STM32系列微控制器新型存儲器擴展技術--FSMC有什么優點?

    Flash控制器管理第1個BANK,NAND/PC Card控制器管理第2~4個BANK。由于兩個控制器管理的存儲器類型不同,擴展時應根據選用的
    發表于 07-19 07:20 ?2942次閱讀
    <b class='flag-5'>STM32</b>系列微<b class='flag-5'>控制器</b>新型<b class='flag-5'>存儲器</b>擴展技術--<b class='flag-5'>FSMC</b>有什么優點?

    基于FPGA和STM32FSMC通信

    FSMC簡介:FSMC靈活靜態存儲控制器FSMC
    發表于 07-28 09:35 ?1.2w次閱讀

    STM32F10xxx FSMC外圍設備驅動外部存儲器的數據和使用手冊免費下載

    本申請說明描述了如何使用高密度STM32F10xxx FSMC(柔性靜態存儲器控制器)外圍設備來驅動一組外部
    發表于 12-27 16:03 ?28次下載
    <b class='flag-5'>STM32</b>F10xxx <b class='flag-5'>FSMC</b>外圍設備驅動外部<b class='flag-5'>存儲器</b>的數據和使用手冊免費下載

    嵌入式單片機基礎篇(二十)FSMC

    FSMC詳解1、FSMC簡介:FSMC,即靈活靜態存儲控制
    發表于 11-23 18:21 ?17次下載
    嵌入式單片機基礎篇(二十)<b class='flag-5'>之</b><b class='flag-5'>FSMC</b>

    STM32學習STM32cubeMX軟件安裝與使用(附STM32cubeMX5.2.1下載地址)

    STM32學習STM32cubeMX軟件安裝與使用(附STM32cubeMX5.2.1下載地址)
    發表于 12-07 11:51 ?28次下載
    <b class='flag-5'>STM32</b>學習<b class='flag-5'>之</b><b class='flag-5'>STM32cubeMX</b>軟件安裝與使用(附<b class='flag-5'>STM32cubeMX</b>5.2.1下載地址)

    為什么可以利用FSMC來使用外部RAM

    為什么可以利用FSMC來使用外部RAM呢,首先了解一下STM32里的FSMC。大容量且引腳數在100腳以上的STM32F103芯片都帶有FSMC
    發表于 04-28 16:22 ?1922次閱讀
    主站蜘蛛池模板: 亚洲性无码av在线| 精品欧美小视频在线观看| 99久久国产综合精品| 艳妇臀荡乳欲伦岳TXT下载| 天天狠狠色综合图片区| 日本黄色成年人免费观看| 免费看黄色小说| 蜜芽TV影院在线视频| 恋夜秀场支持安卓版全部视频国产 | 91在线青春娱乐精品分类| 亚洲国产精品综合久久一线 | 精品国产国产综合精品| 国产人妻精品久久久久久很牛| 高h原耽肉汁动漫视频| 纯肉巨黄H爆粗口男男分卷阅读| 农村脱精光一级| 国产在线观看香蕉视频| 亚久久伊人精品青青草原2020| 日韩免费精品视频| 日本护士性生活| 色拍拍噜噜噜久久蜜桃| 日韩免费一区| 无罩看奶禁18| 亚洲高清在线天堂精品| 亚洲AV一宅男色影视| 亚洲精品高清视频| 一品道门免费高清视频| 中文字幕亚洲欧美日韩2019| 91麻豆精品| wwwwwwwww日本电影| 冈本视频黄页正版| 国产欧美在线亚洲一区刘亦菲 | 最新国自产拍天天更新| 同时被两个男人轮流舔| 无码天堂亚洲国产AV久久| 日本无吗高清| 欧美精品XXXXBBBB| 韩国和日本免费不卡在线| 国产精品亚洲精品影院| 国产精品人妻无码久久久奥特曼 | 久久全国免费久久青青小草|