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

正文內容

基于stm32的數碼相框系統(tǒng)設計與實現(軟件)論文(參考版)

2025-03-02 10:24本頁面
  

【正文】 ,用來識別 BMP位圖類型 DWORD bfSiz。 //文件標志 .只對 39。 } BITMAPINFOHEADER 。 //說明位圖實際使用的彩色表中的顏色索引數 DWORD biClrImportant 。//說明水平分辨率,用象素 /米表示 LONG biYPelsPerMeter 。//說明圖 象的大小,以字節(jié)為單位。 //說明圖象數據壓縮的類型。 //為目標設備說明位面數,其值將總是被設為 1 WORD biBitCount 。 //說明圖象的寬度,以象素為單位 LONG biHeight 。 //說明 BITMAPINFOHEADER結構所需要的字數。典型的 BMP 圖像文件由三部分組成:位圖文件頭數據結構,它包含 BMP圖像文件的類型、顯示內容等信息;位圖信息數據結構,它包含有 BMP圖像的寬、高、壓縮方法,以及定義顏色等信息。 BMP文件的圖像深度可選lbit、 4bit、 8bit 及 24bit。 圖像解碼與顯示 BMP 文件格式 BMP 是一種與硬件設備無關的圖像文件格式,使用非常廣。 FDT稱為文件根目錄表,這個區(qū)域固定為 32個扇區(qū),假設每個扇區(qū)為 512個字節(jié),那么更目錄下最多存放 512個文件(假設都用短文 件名存儲,每個短文件名占 32 個字節(jié))。 FAT 表記錄了每個文件的位置和區(qū)域,是一種鏈式結構 , FAT以“ F8 FF FF 0F FF FF FF FF”這樣的 8個字節(jié)為表頭,用以表示 FAT表的開始,后面的數據每四個字節(jié)為一個簇項(從第 2簇開始) ,用來標記下一個簇所在的位置,這樣每個位置都存儲了下一個簇,只要按著這個表走,就可以找到文件的所有內容。 FAT稱為文件分配表( FAT表),一般一個卡上會存在 2個 FAT表,一個用作備份,一個用作使用。 DBR稱為操作系統(tǒng)引導記錄區(qū),如果沒有 MBR,那么 DBR就位于 0扇 區(qū),如果有則必須通過 MBR區(qū)得到 DBR所在的地址,然后讀出 DBR信息。我們以 FAT32為例做介紹。 XP在 SD卡里面建立的文件系統(tǒng)最常用的也就是 FAT16和 FAT32。 FAT16 則可以管理 2G 的空間 (通過特殊處理也能管理 2G 以上的空間 ),而 FAT32 則能管理到 2TB( 2048GB)的空間。 FAT 文件系統(tǒng)本身比較復雜,所以這里 只簡單介紹一下。系統(tǒng)框圖如圖 41所示。系統(tǒng)通過文件系統(tǒng)讀取 SD卡內存儲的 BMP、 JPEG、 JPG格式圖片,把多幅圖片以幻燈片的形式從 TFT屏上顯示出來。 至此,說明下載代碼成功了,并且也從硬件上驗證了 代碼的正確性。選擇了相應串口之后 就可以通過按 ” 開始編程( P) ” 這個按鈕,一鍵下載代碼到 STM32上,下載成功后如下圖所示: 東南大學成賢學院畢業(yè)論文 33 圖 339 下載完成 上 圖 中,我 用圈圈圈出了 mcuisp對一鍵下載電路的控制過程,其實就是控制 DTR和 RTS電平的變化,控制 BOOT0 和 RESET,從而實現自動下載。串口波特率則可以通過 bps那里設置,對于 STM32,該波特率最大為 230400bps,這里我們一般選擇最高的波特率: 460800,讓 mcuisp 自動去同步。每次打開 mcuisp軟件,軟件會自動去搜索當前電 腦上可用的串口,然后選中一個作為默認的串口(一般是您最后一次關閉時所選則的串口)。這個是必要的選項(在 BOOT0 接 GND 的條件下)。 最后,我們選擇的 DTR 的低電平復位, RTS 高電平進 BootLoader,這個選擇項選中, mcuisp就會通過 DTR和 RTS信號來控制板載的一鍵下載功能電路,以實現一鍵下載功能。 硬件 板雖然自帶了一鍵下載功能,但是還是建議選上這個設置。編程后執(zhí)行,這個選項在無一鍵下載功能的條件下是很有用的,當選中該選項之后,可以在下載完程序之后自動運行代碼。選中之后點擊 OK,重新編譯,編譯結果如下圖所示: 東南大學成賢學院畢業(yè)論文 31 圖 335 重新編譯結果 從上圖中可以看到,編譯器已經產生了 hex文件了, 然后我們打開 USER文件夾,看看里面發(fā)生了什么變化?如下圖所示: 圖 336 新編譯生成文件 從上圖可以看到,重新編譯產生了很多文件,其中就有我們所需要的 hex文件(圖中紅 圈圈中),至此,我們就可以開始下載了。該軟件啟動界面如下: 圖 333 mcuisp 啟動界面 然后我們選擇要下載的 HEX文件,以前面我們新建的工程為例,因為我們前面的工程沒有在 KEIL里面設置生成 .hex 文件,所以在 USER文件夾下是找不到 .hex文件的。在安裝完成之后,可以在電腦的設備管理器里面找到 USB串口(如果找不到,則重啟下電腦),如下圖所示 : 圖 332 USB 串口驅動安裝成功 東南大學成賢學院畢業(yè)論文 30 上圖中我們顯示的 USB串口為 COM5,不同電腦可能不一樣, 可能是 COM COM6等,但是 Prolific USBtoSerial Comm Port,這個一定是一樣的,如果沒找到,則有可能是 安裝有誤 或者系統(tǒng)不兼容。設置完成如下圖所示: 東南大學成賢學院畢業(yè)論文 29 圖 330 開發(fā)板串口下載跳線設置 接著我們在 USB_232處插入 USB線,并接上電腦,如果之前沒有安裝 PL2303的驅動(如果已經安裝過了驅動,則應該能在設備管理器里面看到 USB 串口,如果不能則要先卸載之前的驅動,卸載完后重啟電腦(必要步驟),再重新安裝我們提供的驅動),則電腦會提示找到新硬件,如下圖所示: 圖 331 找到新硬件 我們不理會這個提 示,直接找到光盤 軟件文件夾下的 PL2303 驅動,安裝該驅動。 首先要在板子上設置一下,在板子上把 RXD和 PA9( STM32的 TXD), TXD和 PA10(STM32的 RXD)通過跳線帽連接起來,這樣我們就把 PL2303和 MCU的串口 1連接上了??雌饋硐袷?USB 下載(只有一根 USB線,并沒有串口線)的,實際上,是通過 USB轉成串口,然后再下載的。不過,我們最常用的,最經濟的,就是通過串口給 STM32下載 代碼。如下圖所示: 東南大學成賢學院畢業(yè)論文 28 圖 329 程序運行到斷點處 接下來,我們就可以和軟件仿真一樣的開始仿真了,不過這是真正的在硬件上的仿真,其結果更可信。 在設置完之后,點擊 OK,然后再點擊 OK,回到 IDE 界面,編譯一下工程。然后選中 Reset and Run,以實 現在編程后自動啟動。 Max Clock,可以點擊 Auto Clk來自動設置,這里設置 JLINK的調試速度為 10MHZ,如果 USB數據線比較差,那么可能會出問題,此時,可以通過降低這里的速率來試試。 在安裝了 JLINK V8之后,我們接上 JLINKV8,并把 JTAG口插到 硬件板 上,打開之前新建的工程,點擊 ,打開 Options for Target選項卡,在 Debug欄選擇仿真工具為 CortexM3 JLINK,如下圖所示 圖 324 Debug 選項卡設置 然后 我們點擊 Settings,設置 JLINK的一些參數,如下圖所示: 東南大學成賢學院畢業(yè)論文 26 圖 325 JLINK 模式設置 上圖中,我們使用 JLINK V8的 SW模式調試,因為我們 JTAG需要占用比 SW模式多很多的 I/O口,而在 硬件 板上這些 I/O 口都是非常有用的,并造成部分外設無法使用。 Jlink調試步驟 JLINKV8 支持 JTAG 和 SWD,而 STM32也支持 JTAG和 SWD。 選配用于 5V目標板的適配器。 標準 20芯 JTAG仿真插頭。 使用 USB電源(但不對目標板供電) 帶 USB連接線和 20芯扁平電纜。 東南大學成賢學院畢業(yè)論文 25 監(jiān)測所有 JTAG信號和目標板電壓。 目標板電壓范圍 – ,5V兼容。 下載速度高達 ARM7:600kB/s, ARM9:550kB/s,通過 DCC最高可達 800 KB/s。 支持所有 ARM7/ARM9內核的芯片,以及 CortexM3,包括 Thumb模式。( 4)優(yōu)化了固件結構,使應用程序區(qū)擴大。( 2) LED可以指示更多的工作狀態(tài), 1個 LED指示燈。 JLINK支持 ARMARM ARM1 CortexM3核心,支持 ADS、 IAR、 KEIL開發(fā)環(huán)境。配合 IAR EWAR, ADS, KEIL,WINARM, Real View 等集成開發(fā)環(huán)境支持所有 ARM7/ARM9/ARM11 內核芯片的仿真,通過 RDI 接口和各集成開發(fā)環(huán)境無縫連接,操作方便、連接方便、簡單易學,是學習開發(fā) ARM 最好最實用的開發(fā)工具。這里我們以 JLINK V8為例,說說如何在線調試。至此,我們軟件仿真算是結束了,接下來我們下載代碼到硬件上來真正驗證一下我們的代碼是否可行。與我們預期的目地是一致的。這樣可以很清楚的告訴你,當前的串口是否可用,你的設置是否正確,同樣這樣的方法也可以適用于很多其 他外設。你可以對比一下這兩個的區(qū)別,就知道在uart_init(72, 9600)。如下圖所示 東南大學成賢學院畢業(yè)論文 23 圖 321 查看串口 1 相關寄存器 單擊 USART1后會 在 IDE之外出現一個如下界面 : 圖 322 串口 1 各寄存器初始化前后對比 左邊這個就是 STM32 默認時候,串口 1的狀態(tài),從中可以看到所有與串口相關的寄存器全部在這上面表示出來了,而且有當前串口的波特率等信息的顯示。然后我們點擊,執(zhí)行到斷點處,如下圖所示: 圖 320 執(zhí)行到斷點處 我們不忙著往下執(zhí)行,現在來點擊菜單欄的 PeripheralsUSARTsUSART1。 這樣,我們在上面的仿真界面里面選內存查看窗口、串口打印窗口。 邏輯分析窗口:按下該按鈕會彈出一個邏輯分析窗口,通過 SETUP 按鈕新建一些 I/O 口,就可以觀察這些 I/O 口的電平變化情況,以多種形式顯示出來,比較直觀。 串口打印窗口:該按鈕按下,會彈出一個串口調試助手界面的窗口,用來顯示從串口打印出來的內容。 匯編窗口:通過該按鈕,就可以查看匯編代碼,這對分析程序很有用。 執(zhí)行出去:該按鈕是在進入了函數單步調試的時候,有時候你可能不必再執(zhí)行該函數的剩余部分了,通過該按鈕就直接一步執(zhí)行完函數余下的部分,并跳出函數,回到函數被調用的位置。 執(zhí)行進去:該按鈕用來實現執(zhí)行到某個函數里面去的功能,在沒有函數的情況下,是等同于執(zhí)行過去按鈕的。 執(zhí)行 到斷點處:該按鈕用來快速執(zhí)行到斷點處,有時候你并不需要觀看每步是怎么執(zhí)行的,而是想快速的執(zhí)行到程序的某個地方看結果,這個按鈕就可以實現這 樣的功能。相當于實現了一次硬復位。確認了這項之后,我們便可以選擇 OK,退出Options for Target 對話框了。接下來我們開始進行軟件仿真。另外一個優(yōu)點是不必頻繁的刷機,從而延長了 STM32的 FLASH 壽命。 圖 313 頭文件包含路徑設置 點擊 OK確認,回到 IDE,此時再點擊 按鈕,再編譯一次,發(fā)現沒錯誤了,得到如下界面 : 東南大學成賢學院畢業(yè)論文 19 圖 314 再次編譯結果 至此,一個完整的 STM32開發(fā)工程在 MDK下建立了, 接下來我們就是進行軟件仿真了?,F在我們點擊 ( Options for Target 按鈕),彈出 Options for Target’ Target 1’對話框,選擇C/C++選項卡,如下圖所示 : 東南大學成賢學院畢業(yè)論文 18 圖 312 加入頭文件包含路徑 在 Include Paths處,點擊 2處的按鈕。雙擊紅圈內的內容,你會發(fā)現在 的 01行出現了一個淺綠色的小箭頭,說明錯誤是這個地方產生的。 } } 點擊 (部分編譯按鈕)編譯一下,會在 Output Windows信息欄中發(fā)現如下報錯信息 :(1): error: 5:can not open source input file : No such file or directory。 delay_ms(500)。 //延時初始化 東南大學成賢學院畢業(yè)論文 17 uart_init(72, 9600)。 Stm32_Clock_Init(9)。 如下圖所示 : 東南大學成賢學院畢業(yè)論文 16 圖 38 在編輯狀態(tài)下的體現 接著,我們新建一個 ,并保存在 USER目錄下 , 然后雙擊 USER組,會彈出加載文件的對話框,此時我們在 USER目錄下選擇 ,加入到 USER組下 。 此時 USER組下還是沒有任何文件的,得到如下圖所示的界面 : 圖 37 修改結果 點擊 OK,退出該界面返回 IDE。之后, TEST文件夾下的文件如圖 34所示 : 東南大學成賢學院畢業(yè)論文 14 圖 34 TEST 文件夾最終摸樣 然后我 們在 USER 文件夾下面找到 ,打開它 , 然后在 Targ
點擊復制文檔內容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1