




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、課程設(shè)計報告題 目: 基于STM32的LCD的 設(shè)計 學(xué)生姓名: 學(xué)生學(xué)號: 系 別: 專 業(yè): 屆 別: 指導(dǎo)教師: 電子工程學(xué)院制基于STM32的LCD觸摸屏驅(qū)動的設(shè)計學(xué)生:鳳凰花指導(dǎo)教師:吳琰電子工程學(xué)院 電子信息科學(xué)與技術(shù)目錄1 概述12 LCD液晶顯示屏12.1 LCD液晶顯示屏原理12.2 LCD液晶顯示屏分類23觸摸屏驅(qū)動原理概述23.1 電阻觸摸屏工作原理23.2 觸摸屏控制實(shí)現(xiàn)34 設(shè)計目標(biāo)35 系統(tǒng)硬件設(shè)計35.1 STM32微處理器FSMC接口45.2 LCD液晶顯示屏介紹65.3 觸摸屏控制板86 系統(tǒng)軟件設(shè)計116.1 系統(tǒng)軟件結(jié)構(gòu)116.2 頭文件設(shè)計126.2 硬
2、件初始化程序126.3 3寸LCD模塊驅(qū)動程序186.4 觸摸坐標(biāo)獲取程序256.5 LCD控制器控制程序287 總結(jié)錯誤!未定義書簽。1 概述LCD液晶顯示屏與觸摸屏在嵌入式系統(tǒng)中的應(yīng)用越來越普及。他們是非常簡單、方便、自然的人機(jī)交互方式,目前廣泛應(yīng)用于便攜式儀器、智能家電、掌上設(shè)備等領(lǐng)域。觸摸屏與LCD液晶顯示技術(shù)的緊密結(jié)合,成了主流配置。LCD液晶顯示屏(LCD Module , LCM)是一種將液晶顯示器件、連接件、集成電路、PCB線路板、背光源以及結(jié)構(gòu)件裝配在儀器的組件。觸摸屏技術(shù)在我國的應(yīng)用時間不是太長,但它已經(jīng)成長為人們最為接受的輸入方式。利用這種技術(shù)人們只需觸碰屏幕就可以對主機(jī)
3、進(jìn)行操作,是人機(jī)交互更為方便,直截了當(dāng)。本文檔是對LCD液晶顯示屏和觸摸屏驅(qū)動的設(shè)計做深入介紹。2 LCD液晶顯示屏2.1 LCD液晶顯示屏原理液晶(Liquid Crystal):是一種介于固態(tài)和液態(tài)之間的具有規(guī)則性分子排列,及晶體的光學(xué)各向異性的有機(jī)化合物,液晶在受熱到一定溫度的時候會呈現(xiàn)透明狀的液體狀態(tài),而冷卻則會出現(xiàn)結(jié)晶顆粒的混濁固體狀態(tài),因為物理上具有液體與晶體的特性,故稱之為“液晶”。液晶顯示器LCD(Liquid Crystal Display):是新型平板顯示器件。顯示器中的液晶體并不發(fā)光,而是控制外部光的通過量。當(dāng)外部光線通過液晶分子時,液晶分子的排列扭曲狀態(tài)不同,使光線通過
4、的多少就不同,實(shí)現(xiàn)了亮暗變化,可重現(xiàn)圖像。液晶分子扭曲的大小由加在液晶分子兩邊的電壓差的大小決定。因而可以實(shí)現(xiàn)電到光的轉(zhuǎn)換。即用電壓的高低控制光的通過量,從而把電信號轉(zhuǎn)換成光像。2.2 LCD液晶顯示屏分類(1) 位段型液晶顯示模塊位段型液晶顯示模塊是一種由位段型液晶顯示器件與專用的集成電路組裝成一體的功能部件。(2) 字符型液晶顯示模塊字符型液晶顯示模塊是由字符液晶顯示器件與專用的行、列驅(qū)動器、控制器、必要的連接件以及結(jié)構(gòu)件裝配而成,可以顯示數(shù)字和西文字符。(3) 圖形點(diǎn)陣型液晶顯示模塊圖形點(diǎn)陣型顯示模塊就是可以動態(tài)地顯示字符和圖片的LCD。圖形點(diǎn)陣液晶模塊的點(diǎn)陣像素連續(xù)排列,行和列在拍布中
5、均沒有空隔,不僅可以顯示字符,還可以顯示連續(xù)完整的圖像。圖形點(diǎn)陣型液晶顯示模塊有三種類型可供選擇:行列驅(qū)動型,行列驅(qū)動控制型及行列控制型。2嵌入式和LCD的發(fā)展21嵌入式系統(tǒng)的概述 211嵌入式系統(tǒng)發(fā)展史 嵌入式系統(tǒng)雖然是近幾年才風(fēng)靡起來的,但是這個概念并非是新近才出現(xiàn)產(chǎn)物。從 20世紀(jì)70年代左右單片機(jī)的出現(xiàn)到今天各式各樣的微控制器、嵌入式處理器大規(guī)模應(yīng)用,嵌入式系統(tǒng)已經(jīng)快有30多年的發(fā)展歷史。【1】綜合看嵌入式技術(shù)的發(fā)展,大致可以說經(jīng)歷了以下4個階段: l 第一階段是以單芯片為核心的可編程控制器的系統(tǒng),同時也具有與伺服、監(jiān)測、指示設(shè)備相配合的一些功能,應(yīng)用在專業(yè)性強(qiáng)的工業(yè)控制系統(tǒng)中。而且這
6、種系統(tǒng)一般沒有操作系統(tǒng)的支持,同時通過匯編語言編程對系統(tǒng)進(jìn)行直接控制。這一階段系統(tǒng)主要特點(diǎn)是:系統(tǒng)結(jié)構(gòu)和功能相對單一,存儲容量較小,處理效率較低,幾乎沒有用戶的接口。 l 第二階段是以嵌入式CPU為基礎(chǔ)、以簡單操作系統(tǒng)為核心的嵌入式系統(tǒng)。 這一階段系統(tǒng)的主要特點(diǎn)是:CPU種類繁多,通用性比較弱;系統(tǒng)開銷小,效率高;操作系統(tǒng)達(dá)到了一定的兼容性和擴(kuò)展性;應(yīng)用軟件較專業(yè)化,用戶界面不夠友好;主要用于控制系統(tǒng)負(fù)載的運(yùn)行以及監(jiān)控應(yīng)用程序的運(yùn)行。 l 第三階段是以嵌入式操作系統(tǒng)為標(biāo)志的嵌入式系統(tǒng)。這一階段系統(tǒng)的主要特點(diǎn)是:嵌入式操作系統(tǒng)能運(yùn)行于各種不同類型的微處理器上,兼容性好;操作系統(tǒng)內(nèi)核小、效率高,并
7、且具有高度的模塊化和擴(kuò)展性;具備文件和目錄管理、多任務(wù)、設(shè)備支持、網(wǎng)絡(luò)支持、圖形窗口以及用戶界面等功能;具有大量的應(yīng)用程序接口(API),開發(fā)應(yīng)用程序簡單;嵌入式應(yīng)用軟件豐富。l 第四階段是以基于Intemet為標(biāo)志的嵌入式系統(tǒng),這是一個正在迅速發(fā)展的階段。目前大多數(shù)嵌入式系統(tǒng)還孤立于Internet之外,但隨著Intemet的發(fā)展以及 Intemet技術(shù)與信息家電、工業(yè)控制技術(shù)等結(jié)合日益密切,嵌入式設(shè)備與Internet 的結(jié)合將代表著嵌入式技術(shù)的真正未來。 數(shù)字時代和信息時代的到來使嵌入式產(chǎn)品獲得了巨大的歷史發(fā)展機(jī)遇,為嵌入式市場展現(xiàn)了美好的前景,同時這也對嵌入式廠商提出了新的挑戰(zhàn)。未來的
8、嵌入式系統(tǒng)的發(fā)展趨勢是: (1)網(wǎng)絡(luò)互聯(lián)成為了必然趨勢。未來的嵌入式設(shè)備為了適應(yīng)網(wǎng)絡(luò)互聯(lián)的要求,必須要在硬件上提供各種網(wǎng)絡(luò)通訊的接口。軟件方面內(nèi)核要支持網(wǎng)絡(luò)模塊,甚至可以在設(shè)備上嵌入WEB瀏覽器,真正可以實(shí)現(xiàn)隨時隨地的用各種設(shè)備上網(wǎng)。 (2)精簡系統(tǒng)內(nèi)核、算法,降低功耗、軟硬件的成本。未來嵌入式產(chǎn)品是軟、硬件緊密結(jié)合的設(shè)備,為了降低功耗成本,需要盡量的精簡系統(tǒng)內(nèi)核,只保留和系統(tǒng)緊密相關(guān)的軟、硬件,利用最少的資源來實(shí)現(xiàn)最適當(dāng)?shù)墓δ堋?(3)提供友好的多媒體人機(jī)界面。嵌入式設(shè)備不僅能與用戶親密接觸,最重要的因素就是能提供友好的用戶界面。這就要求了軟件設(shè)計要在多媒體技術(shù)、圖形界面上多下功夫。 3 觸
9、摸屏驅(qū)動原理概述3.1 電阻觸摸屏工作原理電阻觸摸屏是采用電阻模擬量技術(shù)。它是一層玻璃作為基層,上面涂有一層透明氧化金屬(ITO氧化銦)導(dǎo)電層,再蓋有一層玻璃或是外表面硬化處理的光滑的塑料層;內(nèi)表面也涂有一層ITO導(dǎo)電層。它們之間有許多細(xì)小的透明隔離點(diǎn)把兩導(dǎo)電層隔開絕緣,每當(dāng)有筆或是手指按下時,兩導(dǎo)電層就相互接觸。而形成電路。導(dǎo)電層的兩端都涂有一條銀膠,稱為該工作面的一對電極。上下兩個導(dǎo)電層一個是水平方向,一個是豎直方向,分別用來測量X和Y的坐標(biāo)位置。在水平面上的電極稱為X+電極和X-電極,在豎直平面的電極稱為Y+電極和Y-電極。工作時,兩個電極根據(jù)測量需要提供參考電壓或是作為測量端對接觸點(diǎn)的
10、位置進(jìn)行測量。當(dāng)測量接觸點(diǎn)X坐標(biāo)的時候,導(dǎo)電層上的X+電極和X-電極分別上參考電壓和地;Y電極不加電壓,那么X電極間會形成均勻的電壓分布,用Y+電極作為測量點(diǎn),得到的電壓值通過A/D轉(zhuǎn)換,就可對應(yīng)地判斷出接觸點(diǎn)的X坐標(biāo)。Y坐標(biāo)亦是類似,只需改成對Y電極加電壓而X電極不加電壓即可。圖1 電阻屏原理圖212嵌入式系統(tǒng)定義及其構(gòu)成 根據(jù)IEEE(國際電氣和電子工程師協(xié)會)從應(yīng)用上定義為:嵌入式系統(tǒng)是“控制、監(jiān)視或者輔助設(shè)備、機(jī)器和車間運(yùn)行的裝置(原文為device used to controlmonitor,or assist the operation of equipment,machiner
11、y or plants)”。由此可以看出來嵌入式系統(tǒng)是軟件和硬件的綜合體,可以涵蓋到機(jī)械等附屬裝置。目前,國內(nèi)對嵌入式系統(tǒng)的普遍認(rèn)同一個定義是:以計算機(jī)技術(shù)為基礎(chǔ)、以應(yīng)用為中心,軟硬件可裁減,適應(yīng)應(yīng)用系統(tǒng)對功能、體積、可靠性、成本、功耗等嚴(yán)格要求的計算機(jī)系統(tǒng)【2】。 對嵌入式系統(tǒng)的定義可以從以下幾方面來理解: (1) 嵌入式系統(tǒng)是面向產(chǎn)品、面向用戶、面向應(yīng)用的,嵌入式系統(tǒng)是和應(yīng)用緊密結(jié)合的,它具有很強(qiáng)地專用性,必須要結(jié)合實(shí)際系統(tǒng)需求來進(jìn)行合理的裁減。它的升級換代也是根據(jù)具體產(chǎn)品同步來進(jìn)行的,因此嵌入式系統(tǒng)產(chǎn)品一旦進(jìn)入了市場,一般都具有具有較長的生命周期。 (2) 嵌入式系統(tǒng)是將先進(jìn)的計算機(jī)技術(shù)
12、、半導(dǎo)體技術(shù)、電子技術(shù)等各個行業(yè)具體應(yīng)用相結(jié)合的產(chǎn)物。這一點(diǎn)就決定了它是一個資金密集、高度分散、技術(shù)密集、高度分散、不斷創(chuàng)新的知識集成系統(tǒng)。 (3)嵌入式系統(tǒng)必須能根據(jù)應(yīng)用需要對軟件、硬件進(jìn)行裁減、擴(kuò)展以滿足應(yīng)用系統(tǒng)的功能、成本、可靠性、體積等要求。為了提高系統(tǒng)可靠性和執(zhí)行速度,嵌入式系統(tǒng)中的軟件一般都固化在了存儲器芯片或者單片機(jī)本身中,而不是儲存在磁盤等載體中。目前的嵌入式系統(tǒng)的內(nèi)核都只是一個幾K到幾十K的微核,能夠非常順利地按需求擴(kuò)展功能。 一般而言,嵌入式系統(tǒng)的構(gòu)架可以分成四個部分:存儲器、處理器、輸入/輸出(I/O)和軟件構(gòu)成。嵌入式系統(tǒng)和一般的計算機(jī)處理系統(tǒng)不同,它不具備像硬盤那樣的
13、大容量存儲介質(zhì),大多都使用EPROM、E2PROM或閃存(Flash Memory)來作為存儲介質(zhì)。由于大多數(shù)嵌入式設(shè)備的應(yīng)用軟件和操作系統(tǒng)都是緊密結(jié)合的,不加以區(qū)別,這也是嵌入式系統(tǒng)和Windows系統(tǒng)最大的區(qū)別。213嵌入式系統(tǒng)的應(yīng)用 嵌入式系統(tǒng)技術(shù)具有非常廣泛的應(yīng)用前景,其應(yīng)用領(lǐng)域一般可以包括: (1)工業(yè)控制領(lǐng)域口1:作為32位的RISC架構(gòu)、基于ARM核的微控制器芯片不但占據(jù)高端微控制器市場的很大部分市場份額,同時也在逐漸向低端微控制器應(yīng)用領(lǐng)域方向擴(kuò)展,目前已經(jīng)有了大量的8位、16位、32位嵌入式微處理器應(yīng)用在工業(yè)過程控制、電網(wǎng)安全、數(shù)控機(jī)床、電力系統(tǒng)、石油化工系統(tǒng)等領(lǐng)域。ARM微控
14、制器的低功耗、高性價比,向傳統(tǒng)的8位16位微控制器提出了強(qiáng)烈挑戰(zhàn)。 (2)信息家電領(lǐng)域:以后這將成為嵌入式最大的應(yīng)用領(lǐng)域,冰箱、空調(diào)、電視等家用電器的網(wǎng)絡(luò)化、智能化將引領(lǐng)人們的生活步入一個嶄新的空間,可以利用電話線或者網(wǎng)絡(luò)來對家電進(jìn)行遠(yuǎn)程的控制。 (3)交通管理領(lǐng)域:在流量控制、車輛導(dǎo)航、信息監(jiān)測與汽車服務(wù)等,嵌入式系統(tǒng)技術(shù)已經(jīng)獲得廣泛的應(yīng)用,內(nèi)嵌GPS模塊、GSM模塊的移動定位終端已經(jīng)在各種運(yùn)輸業(yè)廣泛應(yīng)用。 (4)家庭智能管理系統(tǒng):水、電和煤氣等遠(yuǎn)程自動抄表,安全防火、防盜, 這將是嵌入式系統(tǒng)廣泛應(yīng)用的又一領(lǐng)域,它不僅能代替?zhèn)鹘y(tǒng)的人工檢查,而且還能實(shí)現(xiàn)了更準(zhǔn)確、速度更快、精度更高、更安全等性
15、能。 (5)無線通訊領(lǐng)域:目前已有超過85的無線通訊設(shè)備采用ARM技術(shù),ARM以其高性能和低成本,在該領(lǐng)域的地位日益鞏固和穩(wěn)定。 (6)消費(fèi)類電子產(chǎn)品:ARM技術(shù)在目前流行的手機(jī)、數(shù)字音頻播放器、數(shù)字機(jī)頂盒和游戲機(jī)中得到了廣泛采用。 (7)網(wǎng)絡(luò)應(yīng)用:伴隨著寬帶技術(shù)推廣,采用ARM技術(shù)的ADSL芯片正逐步獲得競爭優(yōu)勢。此外,ARM在語音及視頻處理上進(jìn)行了優(yōu)化和處理,并獲得了廣泛的支持,這也對DSP的應(yīng)用領(lǐng)域提出了新的挑戰(zhàn)。 (8)成像和安全產(chǎn)品:現(xiàn)在流行的數(shù)碼相機(jī)和打印機(jī)中絕大部分都采用ARM技術(shù)。手機(jī)中的32位SIM智能卡也采用TARM技術(shù)陸。 除了這些以外,ARM微處理器及技術(shù)還應(yīng)用到很多不
16、同的領(lǐng)域,并會在將來取得更加廣泛的應(yīng)用。 2.2 ARM體系結(jié)構(gòu)的發(fā)展 ARM(Advanced RISC Machines),既可以認(rèn)為是一個公司的名字,也可以認(rèn)為是對一類微處理器的通稱,還可以認(rèn)為是一種技術(shù)的名字。1991年ARM公 司成立于英國劍橋,主要出售芯片設(shè)計技術(shù)的授權(quán)。目前,采用ARM技術(shù)知識產(chǎn)權(quán)(IP)核的微處理器,即我們通常所說的ARM微處理器,已遍及工業(yè)控制、消費(fèi)類電子產(chǎn)品、通信系統(tǒng)、網(wǎng)絡(luò)系統(tǒng)、無線系統(tǒng)等各類產(chǎn)品市場,基于ARM技術(shù)的微處理器,其應(yīng)用大概占據(jù)了32位RISC微處理器75以上的市場份額,ARM技術(shù)正在逐步滲透到我們生活的各個方面中。 目前,ARM32位體系結(jié)構(gòu)
17、被公認(rèn)是嵌入式應(yīng)用領(lǐng)域領(lǐng)先的32位嵌入式RISC微處理器結(jié)構(gòu)。自誕生到現(xiàn)在,ARM體系結(jié)構(gòu)為了能夠滿足ARM合作者以及設(shè)計領(lǐng)域的需求正在穩(wěn)步發(fā)展,已經(jīng)發(fā)展并定義了7個不同的版本,每一次ARM體系結(jié)構(gòu)的重大修改,都會添加成極為重要的技術(shù)。在體系結(jié)構(gòu)作重大修改的期間,會添加新的性能來來作為體系結(jié)構(gòu)的變體。ARM的名字代表了系統(tǒng)結(jié)構(gòu)上的提升,后面附加的關(guān)鍵字代表了體系結(jié)構(gòu)的變體。 (1)v1版架構(gòu):該版架構(gòu)只在原型機(jī)子ARM1上出現(xiàn)過,沒有用在商業(yè)產(chǎn)品上。采用的地址空間是26位,尋址空間則是64MBt。 (2)V2版架構(gòu):該版架構(gòu)是對V1版架構(gòu)進(jìn)行了擴(kuò)展,V2架構(gòu)的ARM處理器的指令結(jié)構(gòu)進(jìn)行了完善,
18、例如:支持協(xié)處理器操作指令、增加了乘法指令、快速中斷模式等,但該結(jié)構(gòu)的處理器仍然是26位的地址空間。(3)V3版架構(gòu):對以前的ARM體系結(jié)構(gòu)作了很大的改動,例如:尋址空間增到32位(4GB);指令結(jié)構(gòu)也比前兩種有所完善,例如:增加了程序狀態(tài)保存寄存器(SPSR)、程序狀態(tài)寄存器 (CPSR)、增加了中止和未定義2種處理器模式等。 (4)V4版架構(gòu):V4架構(gòu)在V3版架構(gòu)的基礎(chǔ)上做了進(jìn)一步的擴(kuò)充,指令集中完善了軟件中斷SWl指令的功能、增加了16位Thumb指令集的讀取和寫入操作、增加了處理器系統(tǒng)模式等。V4版架構(gòu)是目前應(yīng)用比較多的ARM系統(tǒng)結(jié)構(gòu),屬于V4 體系結(jié)構(gòu)的處理器的有ARM7,ARM8,
19、ARM9 ,StrongARM。 (5)V5版架構(gòu):提升了ARM和Thumb指令的交互工作的能力,同時有了DSP 指令(V5E結(jié)構(gòu))、Java指令(V5J結(jié)構(gòu)支持),增加了帶有鏈接和交換的轉(zhuǎn)移BLX指令。屬于V5T體系結(jié)構(gòu)的處理器(有ARMl0TDMI和Xscale(Intel公司產(chǎn)品)。屬于V5TE體系結(jié)構(gòu)的處理器有ARM9E、ARM9ES、ARM946等pJ。 (6)V6版架構(gòu):V6版架構(gòu)與V5版架構(gòu)相比 增加了多媒體指令、增加了高性能定點(diǎn)DSP功能、改進(jìn)了的內(nèi)存管理,使系統(tǒng)性能提高了30。屬于V6體系結(jié)構(gòu)的處理器的有ARMll。V6構(gòu)體系結(jié)構(gòu)包含ARM體系結(jié)構(gòu)中所有的四種特殊指令集:Th
20、umb指令,DSP指令,Java指令,Media指令。同時為了滿足向后兼容,ARMv6也包括了ARMy5的存儲器管理和例外處理。這使得眾多的第三方發(fā)展商能夠利用現(xiàn)有的成果,支持軟件和設(shè)計的復(fù)用。 (7)V7版架構(gòu):V7版架構(gòu)ARM是2005年發(fā)布的。它使用了能夠帶來更高性能、低功耗、高效率及代碼密度大的Thumb.2技術(shù)。它首次采用了強(qiáng)大的信號處理擴(kuò)展集,對MP3等媒體編碼提供了加速。 下一代體系結(jié)構(gòu)的發(fā)展是由不斷出現(xiàn)的新產(chǎn)品和變化的市場來推動的。關(guān)鍵的設(shè)計約束也是顯而易見的,速度,功能,性能,功耗,面積和成本必須與每一種的應(yīng)用需求相平衡。保證領(lǐng)先的性能/功耗。在過去是ARM成功的基石所在,在
21、將來的應(yīng)用中它也是一個很重要衡量標(biāo)準(zhǔn)。但新的體系結(jié)構(gòu)不能是想取代現(xiàn)存的體系結(jié)構(gòu),讓它們變得多余。新的CPU核和衍生產(chǎn)品必須建立在這些結(jié)構(gòu)之上,同時不斷地與制造工藝保持同步。例如基于V4T體系結(jié)構(gòu)的ARMTTDMI核還在不斷廣泛被新產(chǎn)品所使用。 3.2 觸摸屏控制實(shí)現(xiàn)對觸摸屏的控制有專用的控制芯片。觸摸屏的控制芯片主要完成兩個任務(wù):一是完成電極電壓的切換,二是采集接觸點(diǎn)處的電壓值并實(shí)現(xiàn)A/D轉(zhuǎn)換。觸摸屏控制芯片主要由觸摸檢測部件和觸摸屏控制器組成。觸摸檢測部件安裝在顯示器屏幕前面,用于檢測用戶觸摸位置,接受位置信號后送至觸摸屏控制器;而觸摸屏控制器的主要作用是從觸摸點(diǎn)檢測裝置上接收觸摸信息,并將
22、它轉(zhuǎn)換成觸點(diǎn)坐標(biāo),再送給MPU,同時它能接收MPU發(fā)來的命令并加以執(zhí)行。4 設(shè)計目標(biāo)基于STM32硬件開發(fā)平臺與3寸液晶屏組成液晶顯示與觸摸屏人機(jī)交互系統(tǒng)。5 系統(tǒng)硬件設(shè)計本實(shí)驗的主要硬件由STM32微處理器的FSMC接口,3寸屏?xí)r序轉(zhuǎn)換板以及觸摸屏控制板組成。圖2 硬件系統(tǒng)結(jié)構(gòu)圖5.1 STM32微處理器FSMC接口FSMC模塊能夠與同步或異步的存儲器和16位的PC存儲器卡接口,它的主要作用是:將AHB傳輸信號轉(zhuǎn)換到適當(dāng)?shù)耐獠吭O(shè)備協(xié)議,滿足訪問外部設(shè)備的時序要求,所有的外部存儲器共享控制器輸出的地址、數(shù)據(jù)和控制信號,每個外部設(shè)備可以通過一個唯一的片選信號加以區(qū)分,F(xiàn)SMC在任一時刻只訪問一個
23、外部設(shè)備。FSMC具有下列主要功能:(1)具有靜態(tài)存儲器接口的器件包括:靜態(tài)隨機(jī)存儲器(SRAM);只讀存儲器(ROM);NOR閃存;PSRAM(4個存儲器塊)。(2)兩個NAND閃存塊,支持硬件ECC并可檢測多達(dá)8K字節(jié)數(shù)據(jù)。(3)16位的PC卡。(4)支持對同步器件的成組(Burst)訪問模式,如NOR閃存和PSRAM8或16位數(shù)據(jù)總線。(5)每一個存儲器塊都有獨(dú)立的片選控制,每一個存儲器塊都可以獨(dú)立配置,時序可編程以支持各種不同的器件:等待周期可編程(多達(dá)15個周期);總線恢復(fù)周期可編程(多達(dá)15個周期);輸出使能和寫使能延遲可編程(多達(dá)15周期)(6)獨(dú)立的讀寫時序和協(xié)議,可支持寬范圍
24、的存儲器和時序PSRAM和SRAM器件使用的寫使能和字節(jié)選擇輸出。(6)將32位的AHB訪問請求,轉(zhuǎn)換到連續(xù)的16位或8位的,對外部16位或8位器件的訪問具有16個字,每個字32位寬的寫入FIFO,允許在寫入較慢存儲器時釋放AHB進(jìn)行其它操作。在開始一次新的FSMC操作前,F(xiàn)IFO要先被清空。通常在系統(tǒng)復(fù)位或上電時,應(yīng)該設(shè)置好所有定義外部存儲器類型和特性的FSMC寄存器,并保持它們的內(nèi)容不變;當(dāng)然,也可以在任何時候改變這些設(shè)置。FSMC包含四個主要模塊:(1)AHB接口(包含F(xiàn)SMC配置寄存器)(2)NOR閃存和PSRAM控制器(3)NAND閃存和PC卡控制器(4)外部設(shè)備接口FSMC框圖如下
25、:圖3 FSMC接口結(jié)構(gòu)框圖當(dāng)STM32微處理器使用FSMC接口模塊來控制LCD液晶顯示模塊時,其接口信號用于驅(qū)動LCD的對應(yīng)關(guān)系如表1:FSMC接口信號線LCD接口信號 功能NExCSX片選 NWRWRX寫使能 NOE RDX 讀使能D15:0D15:0 數(shù)據(jù)信號A25:0 RS地址信號表1STM32微處理器使用FSMC接口模塊與LCD英特爾8080(類似)接口示意圖:圖4 FSMC接口模塊與LCD英特爾8080接口示意圖5.2 LCD液晶顯示屏介紹本實(shí)驗的LCD液晶顯示器采用宇順公司的3寸彩色液
26、晶屏S95361,分辨率為240*400。3TFT顯示屏焊接在奮斗顯示轉(zhuǎn)接板上,在屏上貼有觸摸屏,通過40芯的接口與V5連接。40芯接口定義如下:圖5 40芯接口40芯里包含了16位數(shù)據(jù)線,讀寫線,命令/數(shù)據(jù)控制線,片選線,LCD硬件復(fù)位線,背光控制線以及觸摸控制線。奮斗板V3和MINI就是通過這個接口來控制顯示。 奮斗板MINI和V3都是選用了具有16位FSMC接口STM32F103VET6作為MCU, FSMC接口也可以稱為16位并行接口,時序同I8080接口。按照顯示屏驅(qū)動電路LGDP5420的手冊,為了達(dá)到色彩與顯示效率的平衡,奮斗板采用了16位 64K色接口模式。圖6 16位RGB真
27、彩圖在這個模式每個像素用5位紅色6位綠色5位藍(lán)色總共16位來表示, 根據(jù)分辨率,一幀圖像占用400*240*2=192000字節(jié)。16位8080總線接口時序如下:圖7 總線讀寫時序圖5.3 觸摸屏控制板TSC2046是一款四線制觸摸屏控制器,內(nèi)涵12位分辨率125kHz轉(zhuǎn)換速率逐步逼近型A/D轉(zhuǎn)換器,它支持1.5V5.25V范圍的低電壓I/O口。TSC2046還具有一個片上2.5V的參考電壓,可以用于輔助輸入,電池監(jiān)測,和溫度測量模式。TSC2046芯片主要功能如下:(1)具有四線制觸摸屏接口;(2)可單電源工作,工作電壓范圍2.2V至5.25V;(3)支持1.5V至5.25V的數(shù)字I / O
28、口;(4)內(nèi)部自帶2.5V參考電壓源;(5)能直接測量電源電壓(0V至6V);(6)片上溫度測量;(7)觸摸壓力測量;(8)具有3線制SPI通信接口;(9)自動省電;(10)封裝小,TSSOP-16,QFN-16封裝,可在VFBGA-48封裝;其功能框圖如圖8:圖8 TSC2046功能框圖TSC2046最常用封裝TSSOP-16引腳排列如圖9所示,對應(yīng)的引腳功能定義如表2所示:圖9 TSC2046引腳排列圖引腳號引腳名功能描述1VCC電源2,3X+,Y+觸摸屏正電極4,5X-,Y-觸摸屏負(fù)電極6GND電源地7 VBAT 電池監(jiān)控輸入端。8AUX輔助輸入端。9VREFA/D參考電壓輸入
29、10IOVDD數(shù)字電源輸入端。 11PENIRQ筆中斷引腳,當(dāng)有觸摸事件發(fā)生時,向微控制器申請中斷服務(wù)。12 DOUT串行數(shù)據(jù)輸出,用于輸出轉(zhuǎn)換后的觸摸位置數(shù)據(jù),12位工作方式下,最大為4095。 13BUSY忙指示,低電平有效14DIN串行數(shù)據(jù)輸入、其控制數(shù)據(jù)通過該引腳輸入。15CS片選16DCLK外部時鐘輸入引腳。 表26 系統(tǒng)軟件設(shè)計6.1 系統(tǒng)軟件結(jié)構(gòu)圖10 系統(tǒng)軟件結(jié)構(gòu)本實(shí)驗的觸摸模塊主要的軟件設(shè)計任務(wù)按功能和層次可分為如下幾個部分:1、ucos系統(tǒng)建立任務(wù),包括主任務(wù),用戶界面任務(wù),CAN報文接收任務(wù)等。2、ucGUI圖形用戶界面
30、程序,設(shè)計相關(guān)操作界面。3、中斷服務(wù)程序,主要使用的中斷處理函數(shù)為USB_HP_CAN_TX_IRQHandler(),執(zhí)行CAN總線接收的中斷處理。4、硬件平臺初始化程序,包括時鐘,CAN模塊,觸摸屏等等的初始化。5、LCD的底層驅(qū)動函數(shù)。6.2 頭文件設(shè)計本實(shí)驗由于使用函數(shù)以及宏定義較多,自定義了頭文件demo.hh。demo.h內(nèi)容如下:#ifdef GLOBALS #define EXT#else#define EXT extern #endif#define Led_ON() GPIO_SetBits(GPIOB, GPIO_Pin_5); /LED1亮#define Led_OFF
31、() GPIO_ResetBits(GPIOB, GPIO_Pin_5); /LED1滅#define TP_CS() GPIO_ResetBits(GPIOB,GPIO_Pin_7) /觸摸SPI片選允許#define TP_DCS() GPIO_SetBits(GPIOB,GPIO_Pin_7) /觸摸SPI片選允許#define PEN GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_6) /觸摸檢測 #define RED 0XF800#define GREEN 0X07E0#define BLUE 0X001F #define BRED 0XF81F#def
32、ine GRED 0XFFE0#define GBLUE 0X07FF;#define BLACK 0; FSMC接口的LCD初始化通過調(diào)用FSMC_LCD_Init()函數(shù)實(shí)現(xiàn)信號引腳配置等功能。函數(shù)代碼如下:/* 名 稱:void FSMC_LCD_Init(void)* 功 能:基于FSMC接口的16位TFT接口初始化*/void FSMC_LCD_Init(void) FSMC_NORSRAMInitTypeDef FSMC_NORSRAMInitStructure; FSMC_NORSRAMTimingInitTypeDef p; GPIO_InitTypeDef GPIO_Init
33、Structure; RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC, ENABLE); /使能FSMC接口時鐘 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13; /背光控制 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; /通用推挽輸出模式 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;/輸出模式最大速度50MHz GPIO_Init(GPIOD, &GPIO_InitStructure); GPIO_SetBit
34、s(GPIOD, GPIO_Pin_13); /打開背光 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1; /TFT 復(fù)位腳 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; /通用推挽輸出模式 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; /輸出模式最大速度50MHz GPIO_Init(GPIOE, &GPIO_InitStructure); /* 啟用FSMC復(fù)用功能, 定義FSMC D0-D15及nWE, nOE對應(yīng)的引腳 */ /* 設(shè)置 P
35、D.00(D2), PD.01(D3), PD.04(nOE), PD.05(nWE), PD.08(D13), PD.09(D14), PD.10(D15), PD.14(D0), PD.15(D1) 為復(fù)用上拉 */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_14 | GPIO_Pin_15; GPIO_InitStructure.GPIO_Speed = GPIO_Spe
36、ed_50MHz; /最大速度50MHz GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; /復(fù)用模式 GPIO_Init(GPIOD, &GPIO_InitStructure); /* 設(shè)置 PE.07(D4), PE.08(D5), PE.09(D6), PE.10(D7), PE.11(D8), PE.12(D9), PE.13(D10), PE.14(D11), PE.15(D12) 為復(fù)用上拉 */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9
37、 | GPIO_Pin_10 | GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15; GPIO_Init(GPIOE, &GPIO_InitStructure); /* FSMC NE1 配置 PD7 */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7; GPIO_Init(GPIOD, &GPIO_InitStructure); /* FSMC RS配置 PD11-A16 */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_
38、11 ; GPIO_Init(GPIOD, &GPIO_InitStructure); p.FSMC_AddressSetupTime = 0x02; p.FSMC_AddressHoldTime = 0x00; p.FSMC_DataSetupTime = 0x05; p.FSMC_BusTurnAroundDuration = 0x00; p.FSMC_CLKDivision = 0x00; p.FSMC_DataLatency = 0x00; p.FSMC_AccessMode = FSMC_AccessMode_B; FSMC_NORSRAMInitStructure.FSMC
39、_Bank = FSMC_Bank1_NORSRAM1; FSMC_NORSRAMInitStructure.FSMC_DataAddressMux = FSMC_DataAddressMux_Disable; FSMC_NORSRAMInitStructure.FSMC_MemoryType = FSMC_MemoryType_NOR; FSMC_NORSRAMInitStructure.FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_16b; FSMC_NORSRAMInitStructure.FSMC_BurstAccessMode = FSMC_
40、BurstAccessMode_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_WriteOper
41、ation = FSMC_WriteOperation_Enable; FSMC_NORSRAMInitStructure.FSMC_WaitSignal = FSMC_WaitSignal_Disable; FSMC_NORSRAMInitStructure.FSMC_ExtendedMode = FSMC_ExtendedMode_Disable; FSMC_NORSRAMInitStructure.FSMC_WriteBurst = FSMC_WriteBurst_Disable; FSMC_NORSRAMInitStructure.FSMC_ReadWriteTimingStruct
42、= &p; FSMC_NORSRAMInitStructure.FSMC_WriteTimingStruct = &p; FSMC_NORSRAMInit(&FSMC_NORSRAMInitStructure); /* 使能FSMC BANK1_SRAM 模式 */ FSMC_NORSRAMCmd(FSMC_Bank1_NORSRAM1, ENABLE); 6.3 3寸LCD模塊驅(qū)動程序#include "fsmc_sram.h"#include "font.h" #include "demo.h" #defi
43、ne Bank1_LCD_D (uint32_t)0x60020000) /disp Data ADDR#define Bank1_LCD_C (uint32_t)0x60000000) /disp Reg ADDRvoid LCD_Init(void);void LCD_WR_REG(unsigned int index);void LCD_WR_CMD(unsigned int index,unsigned int val);void LCD_WR_Data(unsigned int val);void LCD_test(void);void LCD_clear(unsigned int
44、p);void Delay(_IO uint32_t nCount);unsigned short LCD_RD_data(void);extern void lcd_rst(void);extern void Delay(_IO uint32_t nCount);void TFT_CLEAR(u8 x,u16 y,u8 len,u16 wid); void TFT_DrawPoint(u8 x,u16 y);void TFT_ShowChar(u8 x,u16 y,u8 num);void TFT_ShowNum(u8 x,u16 y,u32 num);void TFT_ShowString
45、(u8 x,u16 y,const u8 *p);void TFT_ShowBmp(u8 x,u16 y,u8 lenth,u16 wide,const u8 *p);u16 POINT_COLOR=RED; /默認(rèn)紅色 /* 名 稱:LCD_WR_REG(unsigned int index)* 功 能:FSMC寫顯示器寄存器地址函數(shù)*/ void LCD_WR_REG(unsigned int index)*(_IO uint16_t *) (Bank1_LCD_C)= index; /* 名 稱:void LCD_WR_CMD(unsigned int index,unsigned in
46、t val)* 功 能:FSMC寫顯示器寄存器數(shù)據(jù)函數(shù)*/ void LCD_WR_CMD(unsigned int index,unsigned int val)*(_IO uint16_t *) (Bank1_LCD_C)= index;*(_IO uint16_t *) (Bank1_LCD_D)= val;/* 名 稱:unsigned short LCD_RD_data(void)* 功 能:FSMC讀顯示區(qū)16位數(shù)據(jù)函數(shù)*/ unsigned short LCD_RD_data(void)unsigned int a=0;a=*(_IO uint16_t *) (Bank1_LCD
47、_D); /空操作a=*(_IO uint16_t *) (Bank1_LCD_D); /讀出的實(shí)際16位像素數(shù)據(jù) return(a);/* 名 稱:LCD_WR_Data(unsigned int val)* 功 能:FSMC寫16位數(shù)據(jù)函數(shù)*/ void LCD_WR_Data(unsigned int val) *(_IO uint16_t *) (Bank1_LCD_D)= val; void LCD_WR_Data_8(unsigned int val)*(_IO uint16_t *) (Bank1_LCD_D)= val;/* 名 稱:void Delay(_IO uint32_
48、t nCount)* 功 能:延時函數(shù)*/ void Delay(_IO uint32_t nCount) for(; nCount != 0; nCount-);/* 名 稱:void LCD_Init(void)* 功 能:2.4 寸TFT 初始化函數(shù)*/ void LCD_Init(void)unsigned int i;/lcd_rst(); GPIO_ResetBits(GPIOE, GPIO_Pin_1); /硬件復(fù)位 Delay(0x1AFFf); GPIO_SetBits(GPIOE, GPIO_Pin_1 ); Delay(0x1AFFf);LCD_WR_CMD(0x0000
49、, 0x00000); LCD_WR_CMD(0x0000, 0x00000);LCD_WR_CMD(0x0000, 0x00000);LCD_WR_CMD(0x0000, 0x00000);/time, 0010 ,msLCD_WR_CMD(0x0400, 0x06200);LCD_WR_CMD(0x0008, 0x00808);LCD_WR_CMD(0x0300, 0x00C00);/gammaLCD_WR_CMD(0x0301, 0x05A0B);LCD_WR_CMD(0x0302, 0x00906);LCD_WR_CMD(0x0303, 0x01017);LCD_WR_CMD(0x0304, 0x02300);LCD_WR_CMD(0x0305, 0x01700);LCD_WR_CMD(0x0306, 0x06309);LCD_WR_CMD(0x0307, 0x00C09);LCD_W
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 屋面水泥瓦施工方案
- 耐腐蝕泵項目風(fēng)險識別與評估綜合報告
- 青少年心理健康與行為發(fā)展教育實(shí)踐
- 浙江華遠(yuǎn):盈利預(yù)測報告及審核報告
- 金浦鈦業(yè):上海東邑酒店管理有限公司2024年1-9月財務(wù)報表審計報告
- 山東石雕六角亭施工方案
- 埋地涂塑鋼管安裝施工方案
- 項目監(jiān)理實(shí)施方案
- 黃土邊坡錨桿施工方案
- 電氣設(shè)備二次搬運(yùn)施工方案
- 清華大學(xué)告訴你普通人如何抓住DeepSeek紅利
- (2025)輔警招聘公安基礎(chǔ)知識必刷題庫及參考答案
- 人教版(2024)七年級下冊英語Unit 5 Here and Now 單元教學(xué)設(shè)計(共6課時)
- 農(nóng)業(yè)機(jī)械設(shè)備維護(hù)與質(zhì)量保障措施
- 基于圖像處理的CAD圖紙比對算法
- 二零二五年度城市排水管網(wǎng)運(yùn)維合作協(xié)議4篇
- 《習(xí)近平法治思想概論(第二版)》 課件 2. 第二章 習(xí)近平法治思想的理論意義
- 人教版高中英語挖掘文本深度學(xué)習(xí)-選修四-UNIT-4(答案版)
- 太陽能微動力農(nóng)村污水處理系統(tǒng)建設(shè)項目可行性研究報告
- 四川省成都市成華區(qū)2024年中考語文二模試卷附參考答案
- 子宮內(nèi)膜增生護(hù)理個案
評論
0/150
提交評論