接口實(shí)驗(yàn)報(bào)告_第1頁
接口實(shí)驗(yàn)報(bào)告_第2頁
接口實(shí)驗(yàn)報(bào)告_第3頁
接口實(shí)驗(yàn)報(bào)告_第4頁
接口實(shí)驗(yàn)報(bào)告_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、基于STM32實(shí)時(shí)時(shí)鐘設(shè)計(jì)接口實(shí)驗(yàn)課程結(jié)課報(bào)告學(xué)號、專業(yè): 控制工程 1508202024 姓 名: * 報(bào) 告 題 目: 基于STM32的實(shí)時(shí)時(shí)鐘設(shè)計(jì) 指 導(dǎo) 教 師: 潘 明 所 屬 學(xué) 院: 電子工程與自動化學(xué)院 成績評定教師簽名 桂林電子科技大學(xué)研究生院2016年 6 月 4 日 摘 要本設(shè)計(jì)以STM32F103芯片為控制核心,利用其內(nèi)部的RTC設(shè)計(jì)了一個實(shí)時(shí)時(shí)鐘。本系統(tǒng)主要由以下幾個部分組成:微處理器,實(shí)時(shí)時(shí)鐘模塊,顯示模塊,調(diào)節(jié)模塊。其中MCU采用STM32F103芯片,實(shí)時(shí)時(shí)鐘采用RTC實(shí)時(shí)時(shí)鐘,顯示模塊為4.3寸的TFTLCD顯示屏,采用獨(dú)立按鍵調(diào)節(jié)。另外整個系統(tǒng)是在系統(tǒng)軟件控

2、制下工作的,能實(shí)現(xiàn)年、月、日、時(shí)、分、秒的實(shí)時(shí)顯示及鬧鐘功能,并增加了溫度顯示。關(guān)鍵字:STM32F103;實(shí)時(shí)時(shí)鐘(RTC);TFTLCD顯示屏IIAbstractThis design with STM32F103 chip as the control core, using its internal RTC design a real-time clock. The system is mainly composed of the following parts: microprocessor, real-time clock module, display module, contr

3、ol module. MCU using STM32F103 chip, real-time clock using RTC , display module use the 4.3 inch TFTLCD display screen, using independent buttons to adjust . In addition, the whole system is under the control of the system software,and accomplish the year, month, day, hour, minute, second real-time

4、display and alarm clock function,and added to temperature display.Key words: STM32F103;real time clock(RTC); TFTLCD display screenIV目 錄摘 要IAbstractII第一章 緒 論11.1實(shí)時(shí)時(shí)鐘研究的背景和意義1第二章 系統(tǒng)總體方案設(shè)計(jì)32.1 系統(tǒng)結(jié)構(gòu)32.2 系統(tǒng)的基本原理32.3 系統(tǒng)各單元模塊的功能介紹3第三章 硬件單元簡介43.1 STM32F103簡介43.3 TFTLCD簡介103.4 FSMC簡介113.5 DS18B20簡介12第四章 軟件設(shè)計(jì)

5、流程圖134.1 主程序流程圖134.2 RTC初始化流程圖144.3 TFTLCD的使用流程144.4 DS18B20溫度讀取流程圖15第五章 硬件單元電路設(shè)計(jì)165.1 電源模塊165.2 復(fù)位電路模塊165.3 外部時(shí)鐘模塊175.4 外部晶振模塊175.5 JTAG下載模塊175.6 主控制器模塊185.7 BootLoader配置模塊18第六章 運(yùn)行與調(diào)試19參考文獻(xiàn)20第一章 緒 論1.1實(shí)時(shí)時(shí)鐘研究的背景和意義 近年來,隨著電子產(chǎn)品的發(fā)展,隨著社會競爭的激烈,人們對數(shù)字時(shí)鐘的要求越來越高。時(shí)間對人們來說總是那么寶貴,工作的忙碌性和繁雜性容易使人忘記當(dāng)前的時(shí)間,忘記了要做的事情,當(dāng)

6、事情不是很重要的時(shí)候,這種遺忘無傷大雅。但是,一旦重要事情,一時(shí)的耽誤可能釀成大禍。因此從人們的日常生活到工廠的自動控制,從民用時(shí)鐘到科學(xué)發(fā)展所需的時(shí)鐘,現(xiàn)代人對時(shí)間的精度和觀察時(shí)間的方便有了越來越多的需求。人們要求隨時(shí)隨地都能快速準(zhǔn)確的知道時(shí)間,并且要求時(shí)鐘能夠更直觀、更可靠、價(jià)格更便宜。這種要求催生了新型時(shí)鐘的產(chǎn)生。除此之外,由于對社會責(zé)任的更多承擔(dān),人們要求所設(shè)計(jì)的產(chǎn)品能夠產(chǎn)生盡量少的垃圾、能夠消耗盡量少的能量。因此人們對時(shí)鐘的又有了體積小、功耗低的要求。傳統(tǒng)的機(jī)械表由于做工的高精細(xì)要求,造價(jià)的昂貴,材料的限制,時(shí)間指示精度的限制,使用壽命方面,以及其它方面的限制,已不能滿足人們的需求。

7、另外,近些年隨著科技的發(fā)展和社會的進(jìn)步,人們對時(shí)鐘的要求也越來越高,而使得新型電子鐘表成了大勢所趨。20世紀(jì)末,電子技術(shù)獲得了飛速的發(fā)展,在其推動下微機(jī)開始向社會各個領(lǐng)域滲透同時(shí)大規(guī)模集成電路獲得了高速發(fā)展,單片機(jī)的應(yīng)用正在不斷地走向深入,由于它具有功能強(qiáng),體積小,功耗低,價(jià)格便宜,工作可靠,使用方便等特點(diǎn),因此特別適合于與控制有關(guān)的系統(tǒng),越來越廣泛地應(yīng)用于自動控制,智能化儀器,儀表,數(shù)據(jù)采集,軍工產(chǎn)品以及家用電器等各個領(lǐng)域,單片機(jī)往往是作為一個核心部件來使用,在根據(jù)具體硬件結(jié)構(gòu),以及針對具體應(yīng)用對象特點(diǎn)的軟件結(jié)合,以作完善。另外單片機(jī)應(yīng)用的重要意義還在于,它從根本上改變了傳統(tǒng)的控制系統(tǒng)設(shè)計(jì)思

8、想和設(shè)計(jì)方法。從前必須由模擬電路或數(shù)字電路實(shí)現(xiàn)的大部分功能,現(xiàn)在已能用單片機(jī)通過軟件方法來實(shí)現(xiàn)了。這種軟件代替硬件的控制技術(shù)也稱為微控制技術(shù),是傳統(tǒng)控制技術(shù)的一次革命。單片機(jī)模塊中最常見的是數(shù)字鐘,數(shù)字鐘是一種用數(shù)字電路技術(shù)實(shí)現(xiàn)時(shí)、分、秒計(jì)時(shí)的裝置,與機(jī)械式時(shí)鐘相比具有更高的準(zhǔn)確性和直觀性,且無機(jī)械裝置,具有更更長的使用壽命,因此得到了廣泛的使用。這正符合了現(xiàn)代時(shí)鐘的設(shè)計(jì)要求。另一方面,電子技術(shù)的告訴發(fā)展,有力地推動了社會生產(chǎn)力的發(fā)展和社會信息化程度的提高,這些使時(shí)間顯得更加寶貴,從時(shí)間就是生命,時(shí)間就是效率這些名言警句中就能看出。數(shù)字鐘是采用數(shù)字電路實(shí)現(xiàn)對時(shí)、分、秒、數(shù)字顯示的計(jì)時(shí)裝置,廣泛

9、用于個人家庭、車站、碼頭辦公室等公共場所,成為人們?nèi)粘I钪胁豢缮俚谋匦杵罚捎跀?shù)字集成電路的發(fā)展和石英晶體振蕩器的廣泛應(yīng)用,使得數(shù)字鐘的精度,遠(yuǎn)遠(yuǎn)超過老式鐘表,鐘表的數(shù)字化給人們生產(chǎn)生活帶來了極大的方便,而且大大地?cái)U(kuò)展了鐘表原先的報(bào)時(shí)功能。諸如定時(shí)自動報(bào)警、按時(shí)自動打鈴、時(shí)間程序自動控制、定時(shí)廣播、自動起閉路燈、定時(shí)開關(guān)烘箱、通斷動力設(shè)備、甚至各種定時(shí)電氣的自動啟用等,所有這些,都是以鐘表數(shù)字化為基礎(chǔ)的。因此,研究數(shù)字時(shí)鐘及擴(kuò)大其應(yīng)用,有著非?,F(xiàn)實(shí)的意義。 第二章 系統(tǒng)總體方案設(shè)計(jì)2.1 系統(tǒng)結(jié)構(gòu) 本系統(tǒng)的結(jié)構(gòu)框圖如圖2.1所示。2.2 系統(tǒng)的基本原理本系統(tǒng)利用STM32F103自帶的RTC

10、完成秒計(jì)數(shù),然后將當(dāng)然的計(jì)數(shù)值送到微處理器,微處理器依據(jù)當(dāng)前的計(jì)數(shù)值根據(jù)算法分別算出當(dāng)前的年、月、日、時(shí)、分、秒、星期。然后并將它們在TFTLCD顯示屏上顯示出來,并且可以通過按鍵來調(diào)節(jié)當(dāng)前需要調(diào)節(jié)的對象。另外本系統(tǒng)還附帶了一個溫度傳感器DS18B20,用來測量當(dāng)前環(huán)境的溫度并將其值送到TFTLCD顯示屏上顯示出來。2.3 系統(tǒng)各單元模塊的功能介紹1) STM32F103芯片是控制核心,負(fù)責(zé)各模塊的執(zhí)行及處理各模塊的數(shù)據(jù)。2) RTC實(shí)時(shí)時(shí)鐘負(fù)責(zé)秒計(jì)數(shù)。3) TFTLCD顯示屏負(fù)責(zé)顯示萬年歷及溫度。4) 溫度傳感器DS18B20負(fù)責(zé)環(huán)境溫度的檢測。5) 按鍵負(fù)責(zé)調(diào)節(jié)萬年歷及鬧鐘。第三章 硬件單

11、元簡介3.1 STM32F103簡介 Cortex-M3 采用 ARM V7 構(gòu)架,不僅支持 Thumb-2 指令集,而且擁有很多新特性。較之ARM7 TDMI,Cortex-M3 擁有更強(qiáng)勁的性能、更高的代碼密度、位帶操作、可嵌套中斷、低成本、低功耗等眾多優(yōu)勢。STM32 的優(yōu)異性體現(xiàn)在如下幾個方面:1 超低的價(jià)格。以 8 位機(jī)的價(jià)格,得到 32 位機(jī),是STM32 最大的優(yōu)勢。2 超多的外設(shè)。STM32 擁有包括: FSMC、 TIMER、 SPI、 IIC、 USB、 CAN、 IIS、 SDIO、ADC、 DAC、 RTC、 DMA 等眾多外設(shè)及功能,具有極高的集成度。3 豐富的型號。

12、STM32 僅 M3 內(nèi)核就擁有 F100、 F101、 F102、 F103、 F105、 F107、 F207、F217 等8個系列上百種型號,具有 QFN、 LQFP、 BGA 等封裝可供選擇。同時(shí) STM32還推出了STM32L 和STM32W 等超低功耗和無線應(yīng)用型的 M3 芯片。4 優(yōu)異的實(shí)時(shí)性能。84 個中斷,16 級可編程優(yōu)先級,并且所有的引腳都可以作為中斷輸入。5 杰出的功耗控制。STM32 各個外設(shè)都有自己的獨(dú)立時(shí)鐘開關(guān),可以通過關(guān)閉相應(yīng)外設(shè)的時(shí)鐘來降低功耗。6 極低的開發(fā)成本。STM32 的開發(fā)不需要昂貴的仿真器,只需要一個串口即可下載代碼,并且支持 SWD 和 JTAG

13、 兩種調(diào)試口。SWD 調(diào)試可以為你的設(shè)計(jì)帶來跟多的方便,只需要 2 個 IO 口,即可實(shí)現(xiàn)仿真調(diào)試。Stm32其主要配置如下:1) 內(nèi)核: ARM 32位的Cortex-M3 CPU 最高72MHz工作頻率,在存儲器的0等待周期訪問時(shí)可達(dá)1.25DMips/MHz(Dhrystone2.1) 單周期乘法和硬件除法2) 存儲器 從256K至512K字節(jié)的閃存程序存儲器 高達(dá)64K字節(jié)的SRAM 帶4個片選的靜態(tài)存儲器控制器。支持CF卡、 SRAM、 PSRAM、 NOR和NAND存儲器 并行LCD接口,兼容8080/6800模式3) 時(shí)鐘、復(fù)位和電源管理 2.03.6伏供電和I/O引腳 上電/斷

14、電復(fù)位(POR/PDR)、可編程電壓監(jiān)測器(PVD) 416MHz晶體振蕩器 內(nèi)嵌經(jīng)出廠調(diào)校的8MHz的RC振蕩器 內(nèi)嵌帶校準(zhǔn)的40kHz的RC振蕩器 帶校準(zhǔn)功能的32kHz RTC振蕩器4) 低功耗 睡眠、停機(jī)和待機(jī)模式 VBAT為RTC和后備寄存器供電5) 3個12位模數(shù)轉(zhuǎn)換器,1s轉(zhuǎn)換時(shí)間(多達(dá)21個輸入通道) 轉(zhuǎn)換范圍: 0至3.6V 三倍采樣和保持功能 溫度傳感器 2 通道 12 位 D/A 轉(zhuǎn)換器6) DMA: 12 通道 DMA 控制器 支持的外設(shè):定時(shí)器、 ADC、 DAC、 SDIO、I2S、 SPI、 I2C和USART7) 調(diào)試模式 串行單線調(diào)試(SWD)和JTAG接口

15、Cortex-M3內(nèi)嵌跟蹤模塊(ETM) 多達(dá)112個快速I/O端口 51/80/112個多功能雙向的I/O口,所有I/O口可以映像到16個外部中斷;幾乎所有端口均可容忍5V8) 多達(dá)11個定時(shí)器 多達(dá)4個16位定時(shí)器,每個定時(shí)器有多達(dá)4個用于輸入捕獲/輸出比較/PW或脈沖計(jì)數(shù)的通道和增量編碼器輸入 2個16位帶死區(qū)控制和緊急剎車,用于電機(jī)控制的PWM高級控制定時(shí)器 2個看門狗定時(shí)器(獨(dú)立的和窗口型的) 系統(tǒng)時(shí)間定時(shí)器:24位自減型計(jì)數(shù)器 2個16位基本定時(shí)器用于驅(qū)動DAC9) 多達(dá)13個通信接口 多達(dá)2個I2C接口(支持SMBus/PMBus) 多達(dá)5個USART接口(支持ISO7816,

16、LIN,IrDA接口和調(diào)制解調(diào)控制) 多達(dá)3個SPI接口(18M位/秒), 2個可復(fù)用I2S接口 CAN接口(2.0B 主動) USB 2.0全速接口 SDIO接口10) 系統(tǒng)總線 ICode總線 該總線將Cortex-M3內(nèi)核的指令總線與閃存指令接口相連接。指令預(yù)取在此總線上完成。 DCode總線 該總線將Cortex-M3內(nèi)核的DCode總線與閃存存儲器的數(shù)據(jù)接口相連接(常量加載和調(diào)試訪問)。 系統(tǒng)總線 此總線連接Cortex-M3內(nèi)核的系統(tǒng)總線(外設(shè)總線)到總線矩陣,總線矩陣協(xié)調(diào)著內(nèi)核和DMA間的訪問。 DMA總線 此總線將DMA的AHB主控接口與總線矩陣相聯(lián),總線矩陣協(xié)調(diào)著CPU的DC

17、ode和DMA到SRAM、閃存和外設(shè)的訪問。 總線矩陣 總線矩陣協(xié)調(diào)內(nèi)核系統(tǒng)總線和DMA主控總線之間的訪問仲裁,仲裁利用輪換算法。在互聯(lián)型產(chǎn)品中,總線矩陣包含5個驅(qū)動部件(CPU的DCode、系統(tǒng)總線、以太網(wǎng)DMA、 DMA1總線和DMA2總線)和3個從部件(閃存存儲器接口(FLITF)、 SRAM和AHB2APB橋)。在其它產(chǎn)品中總線矩陣包含4個驅(qū)動部件(CPU的DCode、系統(tǒng)總線、 DMA1總線和DMA2總線)和4個被動部件(閃存存儲器接口(FLITF)、 SRAM、 FSMC和AHB2APB橋)。AHB外設(shè)通過總線矩陣與系統(tǒng)總線相連,允許DMA訪問。 AHB/APB橋(APB) 兩個A

18、HB/APB橋在AHB和2個APB總線間提供同步連接。 APB1操作速度限于36MHz, APB2操作于全速(最高72MHz)。在每一次復(fù)位以后,所有除SRAM和FLITF以外的外設(shè)都被關(guān)閉,在使用一個外設(shè)之前,必須設(shè)置寄存器RCC_AHBENR來打開該外設(shè)的時(shí)鐘。3.2 RTC時(shí)鐘簡介 STM32 的實(shí)時(shí)時(shí)鐘(RTC)是一個獨(dú)立的定時(shí)器。STM32 的 RTC 模塊擁有一組連續(xù)計(jì)數(shù)的計(jì)數(shù)器,在相應(yīng)軟件配置下,可提供時(shí)鐘日歷的功能。修改計(jì)數(shù)器的值可以重新設(shè)置系統(tǒng)當(dāng)前的時(shí)間和日期。 RTC 模塊和時(shí)鐘配置系統(tǒng)(RCC_BDCR 寄存器)是在后備區(qū)域,即在系統(tǒng)復(fù)位或從待機(jī)模式喚醒后 RTC 的設(shè)置

19、和時(shí)間維持不變。但是在系統(tǒng)復(fù)位后,會自動禁止訪問后備寄存器和 RTC,以防止對后備區(qū)域(BKP)的意外寫操作。所以在要設(shè)置時(shí)間之前, 先要取消備份區(qū)域(BKP)。RTC的簡化框圖,如圖3.2所示圖3.2 RTC框圖 RTC 由兩個主要部分組成,第一部分(APB1 接口)用來和 APB1 總線相連。此單元還包含一組 16 位寄存器,可通過 APB1 總線對其進(jìn)行讀寫操作。APB1 接口由 APB1 總線時(shí)鐘驅(qū)動,用來與 APB1 總線連接。 另一部分(RTC核心)由一組可編程計(jì)數(shù)器組成,分成兩個主要模塊。第一個模塊是 RTC 的預(yù)分頻模塊,它可編程產(chǎn)生 1 秒的 RTC 時(shí)間基準(zhǔn) TR_CLK。

20、RTC 的預(yù)分頻模塊包含了一個 20位的可編程分頻器(RTC 預(yù)分頻器)。如果在 RTC_CR 寄存器中設(shè)置了相應(yīng)的允許位,則在每個TR_CLK 周期中 RTC 產(chǎn)生一個中斷(秒中斷)。第二個模塊是一個 32 位的可編程計(jì)數(shù)器,可被初始化為當(dāng)前的系統(tǒng)時(shí)間,一個 32 位的時(shí)鐘計(jì)數(shù)器,按秒鐘計(jì)算,可以記錄 4294967296 秒,約合 136 年左右,作為一般應(yīng)用,這已經(jīng)是足夠了的。 RTC還有一個鬧鐘寄存器 RTC_ALR,用于產(chǎn)生鬧鐘。系統(tǒng)時(shí)間按 TR_CLK 周期累加并與存儲在 RTC_ALR 寄存器中的可編程時(shí)間相比較,如果 RTC_CR 控制寄存器中設(shè)置了相應(yīng)允許位,比較匹配時(shí)將產(chǎn)生

21、一個鬧鐘中斷。 RTC內(nèi)核完全獨(dú)立于 RTC APB1 接口,而軟件是通過 APB1 接口訪問 RTC 的預(yù)分頻值、計(jì)數(shù)器值和鬧鐘值的。但是相關(guān)可讀寄存器只在 RTC APB1 時(shí)鐘進(jìn)行重新同步的 RTC 時(shí)鐘的上升沿被更新, RTC 標(biāo)志也是如此。這就意味著,如果 APB1 接口剛剛被開啟之后,在第一次的內(nèi)部寄存器更新之前,從 APB1 上讀取的 RTC 寄存器值可能被破壞了(通常讀到 0)。因此,若在讀取 RTC 寄存器曾經(jīng)被禁止的 RTC APB1 接口,軟件首先必須等待 RTC_CRL 寄存器的 RSF位(寄存器同步標(biāo)志位,bit3)被硬件置 1。RTC 正常工作的一般配置步驟如下:1

22、) 使能電源時(shí)鐘和備份區(qū)域時(shí)鐘。前面已經(jīng)介紹了,我們要訪問 RTC 和備份區(qū)域就必須先使能電源時(shí)鐘和備份區(qū)域時(shí)鐘。RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE);2) 取消備份區(qū)寫保護(hù)。要向備份區(qū)域?qū)懭霐?shù)據(jù),就要先取消備份區(qū)域?qū)懕Wo(hù)(寫保護(hù)在每次硬復(fù)位之后被使能),否則是無法向備份區(qū)域?qū)懭霐?shù)據(jù)的。我們需要用到向備份區(qū)域?qū)懭胍粋€字節(jié),來標(biāo)記時(shí)鐘已經(jīng)配置過了,這樣避免每次復(fù)位之后重新配置時(shí)鐘。 取消備份區(qū)域?qū)懕Wo(hù)的庫函數(shù)實(shí)現(xiàn)方法是:PWR_BackupAccessCmd(ENABLE); /使能 RTC

23、 和后備寄存器訪問3) 復(fù)位備份區(qū)域,開啟外部低速振蕩器。在取消備份區(qū)域?qū)懕Wo(hù)之后,我們可以先對這個區(qū)域復(fù)位,以清除前面的設(shè)置,當(dāng)然這個操作不要每次都執(zhí)行,因?yàn)閭浞輩^(qū)域的復(fù)位將導(dǎo)致之前存在的數(shù)據(jù)丟失,所以要不要復(fù)位,要看情況而定。然后我們使能外部低速振蕩器,注意這里一般要先判斷 RCC_BDCR 的 LSERDY位來確定低速振蕩器已經(jīng)就緒了才開始下面的操作。備份區(qū)域復(fù)位的函數(shù)是:BKP_DeInit();/復(fù)位備份區(qū)域開啟外部低速振蕩器的函數(shù)是: RCC_LSEConfig(RCC_LSE_ON);/ 開啟外部低速振蕩器4) 選擇 RTC 時(shí)鐘,并使能。這里我們將通過 RCC_BDCR 的 R

24、TCSEL 來選擇選擇外部 LSI 作為 RTC 的時(shí)鐘。然后通過RTCEN 位使能 RTC 時(shí)鐘。庫函數(shù)中,選擇 RTC 時(shí)鐘的函數(shù)是:RCC_RTCCLKConfig(RCC_RTCCLKSource_LSE); /選擇 LSE 作為 RTC 時(shí)鐘對于 RTC 時(shí)鐘的選擇,還有 RCC_RTCCLKSource_LSI 和 RCC_RTCCLKSource_HSE_Div128兩個,顧名思義,前者為 LSI,后者為 HSE 的 128 分頻,這在時(shí)鐘系統(tǒng)章節(jié)有講解過。使能 RTC 時(shí)鐘的函數(shù)是:RCC_RTCCLKCmd(ENABLE); /使能 RTC 時(shí)鐘5) 設(shè)置 RTC 的分頻,以

25、及配置 RTC 時(shí)鐘。在開啟了 RTC 時(shí)鐘之后,我們要做的就是設(shè)置 RTC 時(shí)鐘的分頻數(shù),通過 RTC_PRLH 和RTC_PRLL 來設(shè)置,然后等待 RTC 寄存器操作完成,并同步之后,設(shè)置秒鐘中斷。然后設(shè)置RTC 的允許配置位( RTC_CRH 的 CNF 位),設(shè)置時(shí)間(其實(shí)就是設(shè)置 RTC_CNTH 和 RTC_CNTL兩個寄存器)。下面我們一一這些步驟用到的庫函數(shù):在進(jìn)行 RTC 配置之前首先要打開允許配置位(CNF),庫函數(shù)是:RTC_EnterConfigMode(); / 允許配置在配置完成之后,千萬別忘記更新配置同時(shí)退出配置模式,函數(shù)是:RTC_ExitConfigMode

26、(); /退出配置模式,更新配置設(shè)置 RTC 時(shí)鐘分頻數(shù),庫函數(shù)是:void RTC_SetPrescaler(uint32_t PrescalerValue);這個函數(shù)只有一個入口參數(shù),就是 RTC 時(shí)鐘的分頻數(shù),很好理解。然后是設(shè)置秒中斷允許, RTC 使能中斷的函數(shù)是:void RTC_ITConfig(uint16_t RTC_IT, FunctionalState NewState);這個函數(shù)的第一個參數(shù)是設(shè)置秒中斷類型,這些通過宏定義定義的。 對于使能秒中斷方法是:RTC_ITConfig(RTC_IT_SEC, ENABLE); /使能 RTC 秒中斷ALIENTEK 戰(zhàn)艦 ST

27、M32F103 V3 開發(fā)板教程313STM32F1 開發(fā)指南(庫函數(shù)版)下一步便是設(shè)置時(shí)間了,設(shè)置時(shí)間實(shí)際上就是設(shè)置 RTC 的計(jì)數(shù)值,時(shí)間與計(jì)數(shù)值之間是需要換算的。庫函數(shù)中設(shè)置 RTC 計(jì)數(shù)值的方法是:void RTC_SetCounter(uint32_t CounterValue)最后在配置完成之后通過這個函數(shù)直接設(shè)置 RTC 計(jì)數(shù)值。6) 更新配置,設(shè)置 RTC 中斷分組。在設(shè)置完時(shí)鐘之后,我們將配置更新同時(shí)退出配置模式,這里還是通過 RTC_CRH 的 CNF來實(shí)現(xiàn)。 庫函數(shù)的方法是:RTC_ExitConfigMode();/退出配置模式,更新配置在退出配置模式更新配置之后我們在

28、備份區(qū)域 BKP_DR1 中寫入 0X5050 代表我們已經(jīng)初始化過時(shí)鐘了,下次開機(jī)(或復(fù)位)的時(shí)候,先讀取 BKP_DR1 的值,然后判斷是否是 0X5050 來決定是不是要配置。接著我們配置 RTC 的秒鐘中斷,并進(jìn)行分組。往備份區(qū)域?qū)懹脩魯?shù)據(jù)的函數(shù)是:void BKP_WriteBackupRegister(uint16_t BKP_DR, uint16_t Data);這個函數(shù)的第一個參數(shù)就是寄存器的標(biāo)號了,這個是通過宏定義定義的。 比如我們要往BKP_DR1 寫入 0x5050,方法是:BKP_WriteBackupRegister(BKP_DR1, 0X5050);同時(shí),有寫便有讀

29、,讀取備份區(qū)域指定寄存器的用戶數(shù)據(jù)的函數(shù)是:uint16_t BKP_ReadBackupRegister(uint16_t BKP_DR);這個函數(shù)就很好理解了,這里不做過多講解。設(shè)置中斷分組的方法之前已經(jīng)詳細(xì)講解過, 調(diào)用 NVIC_Init 函數(shù)即可,這里不做重復(fù)講解。7) 編寫中斷服務(wù)函數(shù)。最后,我們要編寫中斷服務(wù)函數(shù),在秒鐘中斷產(chǎn)生的時(shí)候,讀取當(dāng)前的時(shí)間值,并顯示到TFTLCD 模塊上。通過以上幾個步驟,我們就完成了對 RTC 的配置,并通過秒鐘中斷來更新時(shí)間。3.3 TFTLCD簡介TFT-LCD 即薄膜晶體管液晶顯示器。其英文全稱為: Thin Film Transistor-L

30、iquid Crystal Display。 TFT-LCD 與無源 TN-LCD、STN-LCD 的簡單矩陣不同,它在液晶顯示屏的每一個象素上都設(shè)置有一個薄膜晶體( TFT),可有效地克服非選通時(shí)的串?dāng)_,使顯示液晶屏的靜態(tài)特性與掃描線數(shù)無關(guān),因此大大提高了圖像質(zhì)量。 TFT-LCD 也被叫做真彩液晶顯示器。ATK-4.3TFTLCD 模塊采用 NT35510 作為 LCD 驅(qū)動器,該驅(qū)動器自帶 LCD GRAM,無需外加獨(dú)立驅(qū)動器,并且,在指令上,基本兼容 ILI9341,使用非常方便。模塊采用 16 位 8080并口與外部連接(不支持其他接口方式,僅支持 16 位 8080 并口),在 8

31、080 并口模式下, LCD驅(qū)動需要用到的信號線如下: CS: LCD 片選信號。 WR:向 LCD 寫入數(shù)據(jù)。 RD:從 LCD 讀取數(shù)據(jù)。 D15:0:16 位雙向數(shù)據(jù)線。 RST:硬復(fù)位 LCD。 RS:命令/數(shù)據(jù)標(biāo)志( 0,讀寫命令; 1,讀寫數(shù)據(jù))。 除了以上信號,我們一般還需要用到這 2 個信號RST 和BL_CTR,其中 RST 是液晶的硬復(fù)位腳,低電平有效,用于復(fù)位 NT35510 芯片,實(shí)現(xiàn)液晶復(fù)位,在每次初始化之前,建議大家先執(zhí)行硬復(fù)位,再做初始化。 BL_CTR 則是背光控制引腳,高電平有效, BL_CTR自帶了 100K 下拉電阻,所以如果這個引腳懸空,背光是不會亮的。

32、必須接高電平,背光才會亮,另外可以用 PWM 控制 BL_CTR 腳,從而控制背光的亮度。NT35510 自帶 LCD GRAM ( 480*864*3 字節(jié)),并且最高支持 24 位顏色深度(1600萬色),不過,我們一般使用 16 位顏色深度( 65K 色),RGB565 格式,這樣,在 16 位模式下,可以達(dá)到最快的速度。3.4 FSMC簡介FSMC,即靈活的靜態(tài)存儲控制器,能夠與同步或異步存儲器和16位 PC 存儲器卡連接,STM32 的 FSMC 接口支持包括 SRAM、 NAND FLASH、 NOR FLASH 和 PSRAM 等存儲器。FSMC 的框圖如圖 2.4 所示:圖3.

33、4 FSMC結(jié)構(gòu)框圖 從上圖我們可以看出,STM32 的 FSMC 將外部設(shè)備分為 3 類: NOR/PSRAM 設(shè)備、 NAND設(shè)備、 PC 卡設(shè)備。他們共用地址數(shù)據(jù)總線等信號,他們具有不同的 CS 以區(qū)分不同的設(shè)備,比如本設(shè)計(jì)中用到的 TFTLCD 就是用的 FSMC_NE4 做片選, 其實(shí)就是TFTLCD 當(dāng)成 SRAM 來控制。這里介紹下為什么可以把 TFTLCD 當(dāng)成 SRAM 設(shè)備用:首先我們了解下外部 SRAM的連接,外部 SRAM 的控制一般有:地址線(如A0A18)、數(shù)據(jù)線(如D0D15)、寫信號(WE)、讀信號(OE)、片選信號(CS),如果 SRAM 支持字節(jié)控制,那么還

34、有 UB/LB 信號。而 TFTLCD的信號包括: RS、D0D15、WR、RD、CS、RST 和BL 等,其中真正在操作 LCD 的時(shí)候需要用到的就只有: RS、D0D15、WR、RD 和CS。其操作時(shí)序和SRAM的控制完全類似,唯一不同就是 TFTLCD 有 RS 信號,但是沒有地址信號。3.5 DS18B20簡介DS18B20 是由 DALLAS 半導(dǎo)體公司推出的一種的“一線總線”接口的溫度傳感器。與傳統(tǒng)的熱敏電阻等測溫元件相比,它是一種新型的體積小、適用電壓寬、與微處理器接口簡單的數(shù)字化溫度傳感器。一線總線結(jié)構(gòu)具有簡潔且經(jīng)濟(jì)的特點(diǎn),可使用戶輕松地組建傳感器網(wǎng)絡(luò),從而為測量系統(tǒng)的構(gòu)建引入全新概念,測量溫度范圍為-55+125 ,精度為±0.5?,F(xiàn)場溫度直接以“一線總線”的數(shù)字方式傳輸,大大提高了系統(tǒng)的抗干擾性。它能直接讀出被測溫度,并且可根據(jù)實(shí)際要求通過簡單的編程實(shí)現(xiàn) 9l2 位的數(shù)字值讀數(shù)方式。它工作在 35.5

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論