freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于stm32的數(shù)碼相框系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)軟件畢業(yè)設(shè)計(jì)論文(編輯修改稿)

2025-07-24 18:52 本頁面
 

【文章內(nèi)容簡(jiǎn)介】 會(huì)的支柱產(chǎn)業(yè),技術(shù)可應(yīng)用到正在迅速成長(zhǎng)中的薄膜晶體管有機(jī)電致發(fā)光(TFTOLED)平板顯示器也在迅速的成長(zhǎng)中。TFT 液晶顯示屏亮度好、對(duì)比度高、層次感強(qiáng)、顏色鮮艷,其廣泛應(yīng)用于手機(jī)、MP4 等消費(fèi)品。因此,本系統(tǒng)選用 英寸 TFTLCD 屏(如圖 22 所示)可顯 26 萬色,分辨率 320*240,控制器為 ILI9320,采用 16 位的 80 并口,配合觸摸屏專用芯片 XPT2046,可對(duì)屏幕進(jìn)行觸摸操作,更顯智能化和個(gè)性化。為了方便用戶使用,我們存儲(chǔ)方式采用兼容 FAT 的文件系統(tǒng),同時(shí)該文件系統(tǒng)也兼容 FAT32 等電腦主流的文件系統(tǒng)方式進(jìn)行存儲(chǔ)。圖 22 英寸 TFTLCD 模塊該模塊的 80 并口有如下一些信號(hào)線:CS:TFTLCD 片選信號(hào)。WR:向 TFTLCD 寫入數(shù)據(jù)。RD:從 TFTLCD 讀取數(shù)據(jù)。D[15:0]:16 位雙向數(shù)據(jù)線。RST:硬復(fù)位 TFTLCD。RS:命令/數(shù)據(jù)標(biāo)志(0,讀寫命令;1,讀寫數(shù)據(jù))。TFTLCD 模塊的 RST 信號(hào)線是直接接到 STM32 的復(fù)位腳上,并不由軟件控制,這樣可以省下來一個(gè) I/O 口。另外我們還需要一個(gè)背光控制線來控制 TFTLCD 的背光。所以我們總共需要的 I/O東南大學(xué)成賢學(xué)院畢業(yè)論文 8 口數(shù)目為 21 個(gè)。模塊的控制器為 ILI9320(可能為其他型號(hào),但是他們的設(shè)置很相似,除了初始化序列有些區(qū)別,其他大都是一摸一樣的,這里僅以 9320 為例介紹),該控制器自帶顯存,其顯存總大小為172820(240*320*18/8),即 18 位模式(26 萬色)下的顯存量。模塊的 16 位數(shù)據(jù)線與顯寸的對(duì)應(yīng)關(guān)系為 565 方式,如下圖所示:圖 23 16 位數(shù)據(jù)與顯存對(duì)應(yīng)關(guān)系圖最低 5 位代表藍(lán)色,中間 6 位為綠色,最高 5 位為紅色。數(shù)值越大,表示該顏色越深。接下來介紹一下 ILI9320 的幾個(gè)重要命令,因?yàn)?ILI9320 的命令很多,這里不一一介紹。這里我們要介紹的命令列表如下:表 ILI9320 常用命令表R0,這個(gè)命令,有兩個(gè)功能,如果對(duì)它寫,則最低位為 OSC,用于開啟或關(guān)閉振蕩器。而如果對(duì)它讀操作,則返回的是控制器的型號(hào)。這個(gè)命令最大的功能就是通過讀它可以得到控器的型號(hào),而我們代碼在知道了控制器的型號(hào)之后,可以針對(duì)不同型號(hào)的控制器,進(jìn)行不同的初始化。因?yàn)?3xx 系列的初始化,其實(shí)都比較類似,我們完全可以用一個(gè)代碼兼容好幾個(gè)控制器。R3,入口模式命令。我們重點(diǎn)關(guān)注的是 I/D0、I/DAM 這 3 個(gè)位,因?yàn)檫@ 3 個(gè)位控制了屏幕的顯示方向。AM:控制 GRAM 更新方向。當(dāng) AM=0 的時(shí)候,地址以行方向更新。當(dāng) AM=1 的時(shí)候,地址以列方向更新。I/D[1:0]:當(dāng)更新了一個(gè)數(shù)據(jù)之后,根據(jù)這兩個(gè)位的設(shè)置來控制地址計(jì)數(shù)器自動(dòng)增加/減少1,其關(guān)系如下圖:東南大學(xué)成賢學(xué)院畢業(yè)論文 9 圖 24 GRAM 顯示方向設(shè)置圖通過這幾個(gè)位的設(shè)置,我們就可以控制屏幕的顯示方向了。R7,顯示控制命令。該命令 CL 位用來控制是 8 位彩色,還是 26 萬色。為 0 時(shí) 26 萬色,為 1時(shí)八位色。DD0、BASEE 這三個(gè)位用來控制顯示開關(guān)與否的。當(dāng)全部設(shè)置為 1 的時(shí)候開啟顯示,全 0 是關(guān)閉。我們一般通過該命令的設(shè)置來開啟或關(guān)閉顯示器,以降低功耗。R32,R33,設(shè)置 GRAM 的行地址和列地址。R32 用于設(shè)置列地址(X 坐標(biāo),0~239),R33 用于設(shè)置行地址(Y 坐標(biāo),0~319)。當(dāng)我們要在某個(gè)指定點(diǎn)寫入一個(gè)顏色的時(shí)候,先通過這兩個(gè)命令設(shè)置到改點(diǎn),然后寫入顏色值就可以了。R34,寫數(shù)據(jù)到 GRAM 命令,當(dāng)寫入了這個(gè)命令之后,地址計(jì)數(shù)器才會(huì)自動(dòng)的增加和減少。該命令是我們要介紹的這一組命令里面唯一的單個(gè)操作的命令,只需要寫入該值就可以了,其他的都是要先寫入命令編號(hào),然后寫入操作數(shù)。R80~R83,行列 GRAM 地址位置設(shè)置。這幾個(gè)命令用于設(shè)定顯示區(qū)域的大小,我們整個(gè)屏的大小為 240*320,但是有時(shí)候我們只需要在其中的一部分區(qū)域?qū)懭霐?shù)據(jù),如果用先寫坐標(biāo),后寫數(shù)據(jù)這樣的方式來實(shí)現(xiàn),則速度大打折扣。此時(shí)我們就可以通過這幾個(gè)命令,在其中開辟一個(gè)區(qū)域,然后不停的丟數(shù)據(jù),地址計(jì)數(shù)器就會(huì)根據(jù) R3 的設(shè)置自動(dòng)增加/減少,這樣就不需要頻繁的寫地址了,大大提高了刷新的速度。通過以上介紹,我們可以得出 TFTLCD 顯示需要的相關(guān)設(shè)置步驟如下:1)設(shè)置 STM32 與 TFTLCD 模塊相連接的 I/O。這一步,先將我們與 TFTLCD 模塊相連的 I/O 口設(shè)置為輸出,具體使用哪些 I/O 口,這里需要根據(jù)連接電路以及 TFTLCD 模塊的設(shè)置來確定。2)初始化 TFTLCD 模塊。通過向 TFTLCD 寫入一系列的設(shè)置,來啟動(dòng) TFTLCD 的顯示。為后續(xù)顯示字符和數(shù)字做準(zhǔn)備。3)通過函數(shù)將字符和數(shù)字顯示到 TFTLCD 模塊上。這里就是通過我們?cè)O(shè)計(jì)的程序,將要顯示的字符送到 TFTLCD 模塊就可以了,這些函數(shù)將在軟件設(shè)計(jì)部分向大家介紹。通過以上三步,我們就可以使用 TFTLCD 模塊來顯示字符和數(shù)字了,并且可以顯示各種顏色的背景。 SD 存儲(chǔ)卡模塊SD 卡(Secure Digital Memory Card)中文翻譯為安全數(shù)碼卡,是一種基于半導(dǎo)體快閃記憶器的新一代記憶設(shè)備,它被廣泛地應(yīng)用于便攜式裝置上,例如數(shù)碼相機(jī)、個(gè)人數(shù)碼助理(PDA)和多東南大學(xué)成賢學(xué)院畢業(yè)論文 10 媒體播放器等。SD 卡由日本松下、東芝及美國 SanDisk 公司于 1999 年 8 月共同開發(fā)研制。大小猶如一張郵票的 SD 記憶卡,重量只有 2 克,但卻擁有高記憶容量、快速數(shù)據(jù)傳輸率、極大的移動(dòng)靈活性以及很好的安全性,此外它可存多種格式數(shù)據(jù)文件,具有很強(qiáng)的可擴(kuò)展性;用戶可方便使用SD 卡讀卡器對(duì)其進(jìn)行用戶信息修改。2G 金士頓 SD 卡實(shí)物如下圖 25 所示。SD 卡一般支持兩種操作模式:SD 卡模式與 SPI 模式。主機(jī)可以選擇以上任意一種模式同 SD 卡通信,SD 卡模式允許 4 線的高速數(shù)據(jù)傳輸。SPI 模式允許簡(jiǎn)單的通過 SPI 接口來和 SD 卡通信,這種模式同 SD 卡模式相比就是喪失了速度。SD 卡的引腳排序如下圖 26 所示: 圖 25 Kingston SD 卡 圖 26 SD 卡引腳排序圖SD 卡引腳功能描述如下表所示:表 SD 卡引腳功能表SD 卡只能使用 的 I/O 電平,所以,MCU 一定要能夠支持 的 I/O 端口輸出。在 SPI 模式下,CS/MOSI/MISO/CLK 都需要加 10~100K 左右的上拉電阻。SD 卡要進(jìn)入 SPI 模式很簡(jiǎn)單,就是在 SD 卡收到復(fù)位命令(CMD0)時(shí),CS 為有效電平(低電平)則 SPI 模式被啟用。不過在發(fā)送CMD0 之前,要發(fā)送74 個(gè)時(shí)鐘,這是因?yàn)?SD 卡內(nèi)部有個(gè)供電電壓上升時(shí)間,大概為 64 個(gè) CLK,剩下的 10 個(gè) CLK 用于 SD 卡同步,之后才能開始 CMD0 的操作,在卡初始化的時(shí)候,CLK 時(shí)鐘最大不能超過 400KHZ。本次硬件電路板使用的是 SPI 模式來讀寫 SD 卡,下面我們就重點(diǎn)介紹一下 SD 卡在 SPI 模式下的相關(guān)操作。SPI 模式下幾個(gè)重要的操作命令,如下表所示:表 SPI 模式下 SD 卡部分操作指令東南大學(xué)成賢學(xué)院畢業(yè)論文 11 其中 R1 的回應(yīng)格式如下表所示:東南大學(xué)成賢學(xué)院畢業(yè)論文 12 表 SD 卡 R1 回應(yīng)格式SD 卡的典型初始化過程如下:初始化與 SD 卡連接的硬件條件(MCU 的 SPI 配置,I/O 口配置);上電延時(shí)(74 個(gè) CLK);復(fù)位卡(CMD0);激活卡,內(nèi)部初始化并獲取卡類型(CMD1(用于 MMC 卡)、CMD5CMD41);查詢 OCR,獲取供電狀況(CMD58);是否使用 CRC(CMD59);設(shè)置讀寫塊數(shù)據(jù)長(zhǎng)度(CMD16);讀取 CSD,獲取存儲(chǔ)卡的其他信息(CMD9);發(fā)送 8CLK 后,禁止片選;這樣我們就完成了對(duì) SD 卡的初始化,這里面我們一般設(shè)置讀寫塊數(shù)據(jù)長(zhǎng)度為 512 個(gè)字節(jié),并禁止使用 CRC。在完成了初始化之后,就可以開始讀寫數(shù)據(jù)了。SD 卡讀取數(shù)據(jù),這里通過 CMD17 來實(shí)現(xiàn),具體過程如下:發(fā)送 CMD17;接收卡響應(yīng) R1;接收數(shù)據(jù)起始令牌 0XFE;接收數(shù)據(jù);接收 2 個(gè)字節(jié)的 CRC,如果沒有開啟 CRC,這兩個(gè)字節(jié)在讀取后可以丟掉;8CLK 之后禁止片選;以上就是一個(gè)典型的讀取 SD 卡數(shù)據(jù)過程,SD 卡的寫與讀數(shù)據(jù)差不多,寫數(shù)據(jù)通過 CMD24 來實(shí)現(xiàn),具體過程如下:發(fā)送 CMD24;接收卡響應(yīng) R1;發(fā)送寫數(shù)據(jù)起始令牌 0XFE;發(fā)送數(shù)據(jù);發(fā)送 2 字節(jié)的偽 CRC;8CLK 之后禁止片選;東南大學(xué)成賢學(xué)院畢業(yè)論文 13 第三章 編程環(huán)境介紹 簡(jiǎn)介RVMDK 源自德國的 KEIL 公司,是 RealView MDK 的簡(jiǎn)稱,在全球 RVMDK 被超過 10 萬的嵌入式開發(fā)工程師使用。RealView MDK 集成了業(yè)內(nèi)最領(lǐng)先的技術(shù),包括 181。Vision3 集成開發(fā)環(huán)境與RealView 編譯器。支持 ARMARM9 和最新的 CortexM3 核處理器,自動(dòng)配置啟動(dòng)代碼,集成Flash 燒寫模塊,強(qiáng)大的 Simulation 設(shè)備模擬,性能分析等功能。與 ARM 之前的工具包 相比,RealView 編譯器具有代碼更小、性能更高的優(yōu)點(diǎn)。RealView 編譯器與 的比較:代碼密度方面比 編譯的代碼尺寸小 10%;代碼性能方面比 編譯的代碼性能提高 20%?,F(xiàn)在 RealView 的最新版本是 , 以上版本的 RVMDK 對(duì) IDE 界面進(jìn)行了很大改變,并且支持 CortexM0 內(nèi)核的處理器。雖然 界面確實(shí)是好了,支持的器件也多了,但編譯效率沒有 ,尤其是編譯后的代碼執(zhí)行速度(FFT 運(yùn)算), 要對(duì)速度進(jìn)行O2 優(yōu)化才能和 。另外,國內(nèi)大多數(shù)單片機(jī)工程師都接觸和使用過 KEIL,相信大家都知道 KEIL 的使用是非常簡(jiǎn)單的,而且很容易入手。基于以上幾點(diǎn),此次選擇 版本的編譯器來對(duì)軟件進(jìn)行編譯。 新建 RVMDK 工程首先,打開 MDK(以下簡(jiǎn)稱 RVMDK 為 MDK)軟件,再點(diǎn)擊 ProjectNew uVision Project 菜單項(xiàng),則彈出如圖 31 所示界面:圖 31 保存工程界面新建一個(gè)文件夾 TEST,然后把工程名字設(shè)為 test,點(diǎn)擊“保存”按鈕,彈出選擇器件的對(duì)話框,因?yàn)槲覀兊拈_發(fā)板使用的是 STM32F103RBT6,所以在這里我們選擇 STMicroelectronics 下面的 STM32F103RB(如果使用的是其他系列的芯片,選擇相應(yīng)的型號(hào)就可以了)。如圖 32 所示:東南大學(xué)成賢學(xué)院畢業(yè)論文 14 圖 32 器件選擇界面點(diǎn)擊 OK,MDK 會(huì)彈出一個(gè)對(duì)話框,問你是否加載啟動(dòng)代碼到當(dāng)前工程下面,這里我們選擇是。如圖 33 所示: 圖 33 提示界面啟動(dòng)代碼是一段和硬件相關(guān)的匯編代碼,是必不可少的!這段代碼的具體作用如下:①堆棧的初始化;②向量表定義;③地址重映射及中斷向量表的轉(zhuǎn)移;④設(shè)置系統(tǒng)時(shí)鐘頻率;⑤中斷寄存器的初始化。在上面點(diǎn)擊了是以后,MDK 就把啟動(dòng)代碼 加入到了我們的工程下面。到這里,我們就可以開始編寫自己的代碼了。由于上面我們還沒有任何代碼在工程里面,我們?cè)?TEST 目錄下新建一個(gè)新文件夾 USER,這里我們把系統(tǒng)代碼復(fù)制過來(整個(gè) SYSTEM 文件夾,這些代碼在任何 STM32F103 的芯片上都是通用的,可以用于快速構(gòu)建自己的工程,后面會(huì)有詳細(xì)介紹)。之后,TEST 文件夾下的文件如圖 34 所示:東南大學(xué)成賢學(xué)院畢業(yè)論文 15 圖 34 TEST 文件夾最終摸樣然后我們?cè)?USER 文件夾下面找到 ,打開它,然后在 Target 目錄樹上右鍵Manage Components。如圖 35 所示:圖 35 調(diào)出 Manage Components在進(jìn)入 Manage Components 界面之后,彈出如下對(duì)話框:東南大學(xué)成賢學(xué)院畢業(yè)論文 16 圖 36 Components 選項(xiàng)卡在上面對(duì)話框的中間欄,點(diǎn)新建(用紅圈標(biāo)出)按鈕(也可以通過雙擊下面的空白處實(shí)現(xiàn)),新建USER 和 SYSTEM 兩個(gè)組,然后點(diǎn)擊 Add Files 按鈕,把 , 加入到 SYSTEM組中。此時(shí) USER 組下還是沒有任何文件的,得到如下圖所示的界面:圖 37 修改結(jié)果點(diǎn)擊 OK,退出該界面返回 IDE。這時(shí),我們?cè)?Target 樹下發(fā)現(xiàn)多了 2 個(gè)組名,就是我們剛剛新建的 2 個(gè)組。如下圖所示:東南大學(xué)成賢學(xué)院畢業(yè)論文 17 圖 38 在編輯狀態(tài)下的體現(xiàn)接著,我們新建一個(gè) 文件,并保存在 USER 目錄下,然后雙擊 USER 組,會(huì)彈出加載文件的對(duì)話框,此時(shí)我們?cè)?USER 目錄下選擇 文件,加入到 USER 組下。得到如下界面:圖 39 在 USER 組下加入 文件接著我們?cè)? 文件里面輸入如下代碼:include include i
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1