www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 單片機 > 單片機
[導讀]本篇文章三個主題:FSMC有關配置、一串字符顯示原理、漢字顯示原理。。下面進入正題一、FSMC的有關配置(博主用的是FSMC_A10): 來自別人家的博客http://blog.csdn.net/jxnu_xiaobing/article/details/8718566 FSMC

本篇文章三個主題:FSMC有關配置、一串字符顯示原理、漢字顯示原理。。下面進入正題
一、FSMC的有關配置(博主用的是FSMC_A10):
來自別人家的博客http://blog.csdn.net/jxnu_xiaobing/article/details/8718566
FSMC的介紹就不介紹了,網(wǎng)上一大片。我們就討論討論為什么用FSMC的地址線與TFTLCD的RS引腳相連?以及我們?nèi)绾瓮鵏CD寫數(shù)據(jù)/命令?
FSMC稱為可變靜態(tài)存儲控制器??勺儯褐苑Q為“可變”,是由于通過對特殊功能寄存器的設置,F(xiàn)SMC 能夠根據(jù)不同的外部存儲器類型,發(fā)出相應的數(shù)據(jù)/地址/控制信號類型以匹配信號的速度。(這點很重要,后文會提到。。)
簡單說明一下吧~為什么不拿STM32的IO口直接接LCD的對應引腳?(看看我上邊發(fā)的鏈接就清楚了),大致就是操作麻煩,效率低嘛。。好,F(xiàn)SMC是吧TFTLCD當成SRAM設備來用的,其操作時序和SRAM的控制完全類似,唯一不同的就是TFTLCD有RS信號,但是沒有地址信號。
TFTLCD是通過RS信號來決定傳送的數(shù)據(jù)是數(shù)據(jù)還是命令,本質(zhì)上可以理解為一個地址信號,比如我們把RS接在A10上面(當然A0-Axx都可以)。那么LCD到底是怎么判斷我們寫的是命令還是數(shù)據(jù)呢?下面是重點??!!
以戰(zhàn)艦的程序為例:

這里因為數(shù)據(jù)線寬度是16位時,HADDR[25:1]->FSMC[24:0],相當于右移一位。下面是戰(zhàn)艦給出的A10偏移量:

0x6c000000相比大家都沒有問題。按理說A10的偏移量應該是2的11次方(0-10)=2048,轉(zhuǎn)換為16進制就是800,那也比7FE大兩位!
(這里復習下基礎知識:RS=0,寫命令;RS=1,寫數(shù)據(jù)。)
為什么呢?我是這么理解的(倒推法):按我的思路推,如果我們?nèi)CD->LCD_REG的地址0x6c000800的話,當?shù)刂酚乙茣r,第10位就不是0了,而是1。對應RS=1,那么對于LCD就不是寫命令了,而變成寫數(shù)據(jù)了;又因為結(jié)構(gòu)體內(nèi)部成員對齊規(guī)則,LCD->LCD_RAM的地址就是0x6c00802了,當?shù)刂酚乙茣r,第10位也是1,對應RS=1。還是寫數(shù)據(jù)?。。?!
推到這應該明白了。如果按正常算法來計算的話,RS就只會等與1,就不會區(qū)分寫命令和寫數(shù)據(jù)了。
故我們要將A10的偏移量減去兩位。就得到圖中戰(zhàn)艦的0x000007FE了。LCD->LCD_REG的地址就是0x6c0007FE了。當?shù)刂酚乙埔晃粫r第10位是0,對應RS=0,為對于LCD就是寫命令了;而因為結(jié)構(gòu)體內(nèi)部成員對齊規(guī)則,LCD->LCD_RAM的地址就是0x6c000800了。當?shù)刂酚乙埔晃粫r第10位是1,對應RS=1,為對于LCD就是寫數(shù)據(jù)了。這樣FSMC就能區(qū)分傳送的是數(shù)據(jù)還是命令了。。大功告成!
到這里,問題來了:我們就控制A10這一根線怎么就可以完成讀寫了呢?那些十多個引腳的電平又是誰在控制呢?
這個神秘的‘人物’就是上文我們提到的FSMC啦!先看一個戰(zhàn)艦上的寫寄存器函數(shù):

第一個圖:這里的LCD->LCD_REG是一個地址(0x6c000007FE),這里的寄存器序號哦:是指LCD手冊里定義的寄存器地址。只要我們往LCD->LDC_REG這個地址里寫一個變量(地址)。因為LCD->LDC_REG這個地址是FSMC管轄的。所以這時候FSMC就要勇敢的站出來管了~FSMC會自己生成相應的時序,包括CS、WR、RD和IO方向都是由FSMC控制!這就大大便利了我們對LCD的控制。
第二個圖:這里的LCD->LCD_RAM也是一個地址(0x6c00000800),LCD->LCD_RAM=data;是往該寄存器地址里面寫入數(shù)據(jù)。

二、一串字符的顯示原理(戰(zhàn)艦)
1、比如我們要顯示一個字符串LCD_ShowString(x,x,x,"hello 21ic");x:是一些坐標哦和字體大小參數(shù),先不管→_→
2、那我們就得調(diào)用字符顯示函數(shù):LCD_ShowChar();來把一個字符的點陣全部取完。
3、字符是有點組成的,故在字符函數(shù)中不斷調(diào)用畫點函數(shù)LCD_DrawPoint();來畫點(往LCD->LCD_RAM里寫顏色值,這個顏色值在lcd.h里被定義為16位的地址)。
4、至此,在lcd_init()中有過LCD屏的初始化(設置顯示參數(shù)),就可以顯示了。

5、簡析一下疊加和非疊加的原理吧→_→
疊加就是字符點陣中是‘1’就用賦畫筆顏色,是‘0’就賦背景顏色(那個字符的背景顏色,與全屏背景顏色無關),沒毛??!因為最后顯示的時候有個覆蓋的作用。就是先把全屏顏色顯示出來,再在全屏顏色的基礎上覆蓋上你的字符。所以就顯示出疊加和非疊加(只有一個畫筆顏色)了。
三、漢字顯示原理
其實漢字顯示和英文顯示一個原理。很簡單!顯示的原理就是根據(jù)你的漢字字模字節(jié)大小來畫點。
簡單說說哈:大家都知道,字母的顯示原理就是兩個for循環(huán)(博主就知道這個),第一個for是控制‘行’的,第二個for是控制‘列’的。先給兩個例子:比如顯示一個16*08的字母,第一個for是循環(huán)16次,第二個for是循環(huán)8次;顯示一個24*24的漢字,第一個for是循環(huán)72次,第二個for還是循環(huán)8次。不知道到這里大家看沒看出來什么規(guī)律來→_→
規(guī)律:第一個for是字模所占的字節(jié)數(shù),第二個for是每次畫8位(從列最高處往下描8個點),字符顯示函數(shù)中間會有y-y0的字樣,這是判斷一列點數(shù)是否達到16或者24個了,是就x+1,換下一列。
總的來說,漢字的字模字節(jié)說就是比字母字模字節(jié)數(shù)大。修改的也就是第一個fo和y-y0里面的參數(shù)。

本站聲明: 本文章由作者或相關機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

在嵌入式開發(fā)中,STM32的時鐘系統(tǒng)因其靈活性和復雜性成為開發(fā)者關注的焦點。然而,看似簡單的時鐘配置背后,隱藏著諸多易被忽視的陷阱,輕則導致系統(tǒng)不穩(wěn)定,重則引發(fā)硬件損壞。本文從時鐘源選擇、PLL配置、總線時鐘分配等關鍵環(huán)...

關鍵字: STM32 時鐘系統(tǒng)

在嵌入式系統(tǒng)開發(fā)中,STM32系列微控制器的內(nèi)部溫度傳感器因其低成本、高集成度特性,廣泛應用于設備自檢、環(huán)境監(jiān)測等場景。然而,受芯片工藝差異和電源噪聲影響,其原始數(shù)據(jù)存在±1.5℃的固有誤差。本文從硬件配置、校準算法、軟...

關鍵字: STM32 溫度傳感器

在能源效率與智能化需求雙重驅(qū)動下,AC-DC轉(zhuǎn)換器的數(shù)字控制技術正經(jīng)歷從傳統(tǒng)模擬方案向全數(shù)字架構(gòu)的深刻變革。基于STM32微控制器的PFM(脈沖頻率調(diào)制)+PWM(脈沖寬度調(diào)制)混合調(diào)制策略,結(jié)合動態(tài)電壓調(diào)整(Dynam...

關鍵字: AC-DC STM32

當前智能家居產(chǎn)品需求不斷增長 ,在這一背景下 ,對現(xiàn)有澆花裝置缺陷進行了改進 ,設計出基于STM32單片機的全 自動家用澆花機器人。該設計主要由機械結(jié)構(gòu)和控制系統(tǒng)構(gòu)成 ,機械結(jié)構(gòu)通過麥克納姆輪底盤與噴灑裝置的結(jié)合實現(xiàn)機器...

關鍵字: STM32 麥克納姆輪 安全可靠 通過性強

用c++編程似乎是讓你的Arduino項目起步的障礙嗎?您想要一種更直觀的微控制器編程方式嗎?那你需要了解一下Visuino!這個圖形化編程平臺將復雜電子項目的創(chuàng)建變成了拖動和連接塊的簡單任務。在本文中,我們將帶您完成使...

關鍵字: Visuino Arduino ESP32 STM32

基于STM32與LoRa技術的無線傳感網(wǎng)絡憑借其低功耗、廣覆蓋、抗干擾等特性,成為環(huán)境監(jiān)測、工業(yè)自動化等場景的核心解決方案。然而,如何在復雜電磁環(huán)境中實現(xiàn)高效休眠調(diào)度與動態(tài)信道優(yōu)化,成為提升網(wǎng)絡能效與可靠性的關鍵挑戰(zhàn)。本...

關鍵字: STM32 LoRa

在實時控制系統(tǒng)、高速通信協(xié)議處理及高精度數(shù)據(jù)采集等對時間敏感的應用場景中,中斷響應延遲的優(yōu)化直接決定了系統(tǒng)的可靠性與性能上限。STM32系列微控制器憑借其靈活的嵌套向量中斷控制器(NVIC)、多通道直接內(nèi)存訪問(DMA)...

關鍵字: STM32 DMA

數(shù)字電源技術向高功率密度、高效率與高動態(tài)響應方向加速演進,STM32微控制器憑借其基于DSP庫的算法加速能力與對LLC諧振變換器的精準控制架構(gòu),成為優(yōu)化電源動態(tài)性能的核心平臺。相較于傳統(tǒng)模擬控制或通用型數(shù)字控制器,STM...

關鍵字: STM32 數(shù)字電源

STM32微控制器憑借其針對電機控制場景的深度優(yōu)化,成為高精度、高可靠性驅(qū)動系統(tǒng)的核心選擇。相較于通用型MCU,STM32在電機控制領域的核心優(yōu)勢集中體現(xiàn)在FOC(磁場定向控制)算法的硬件加速引擎與PWM死區(qū)時間的動態(tài)補...

關鍵字: STM32 電機控制

無線充電技術加速滲透消費電子與汽車電子領域,基于Qi協(xié)議的無線充電發(fā)射端開發(fā)成為智能設備能量補給的核心課題。傳統(tǒng)模擬控制方案存在響應滯后、參數(shù)調(diào)整困難等問題,而基于STM32的數(shù)字PID控制結(jié)合FOD(Foreign O...

關鍵字: STM32 無線充電
關閉