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

正文內(nèi)容

基于stm32的數(shù)碼相框系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)(軟件)論文-閱讀頁

2025-03-18 10:24本頁面
  

【正文】 下面的空白處實(shí)現(xiàn) ),新建USER 和 SYSTEM兩個(gè)組 , 然后點(diǎn)擊 Add Files按鈕,把 , , SYSTEM組中 。 這時(shí),我們?cè)?Target樹下發(fā)現(xiàn)多了 2個(gè)組名,就是我們剛剛新建的 2個(gè)組 。 得到如下界面 : 圖 39 在 USER 組下加入 文件 接著我們?cè)? : include include include int main(void) { u8 t=0。 //72M delay_init(72)。 //設(shè)置串口 1 波特率 while(1) { printf(t:%d\n, t)。 t++。如下圖所示(圖中紅圈內(nèi)信息): 圖 310 編譯報(bào)錯(cuò) 意思是無法打開源輸入文 件 ,沒這個(gè)文件或目錄。雙擊后淺綠色箭頭出現(xiàn)位置如下: 圖 311 編譯報(bào)錯(cuò) 其實(shí)通過下面錯(cuò)誤的說明,就是 include 的路徑?jīng)]有加進(jìn)去的緣故,而導(dǎo)致了這個(gè)錯(cuò)誤。在彈出的對(duì)話框中加入 SYSTEM文件夾下的 3個(gè)文件夾名字,把這幾個(gè)路徑都加進(jìn)去(此操作即設(shè)定編譯器的頭文件包含路徑, 下 面會(huì)經(jīng)常用到)。 軟件仿真 MDK的一個(gè)強(qiáng)大的功能就是提供軟件仿真,通過軟件仿真,我們可以發(fā)現(xiàn)很多將要出現(xiàn)的問題,避免了下載到 STM32 里面來查這些錯(cuò)誤,這樣最大的好處是能很方便的檢查程序存在的問題,因?yàn)樵?MDK 的仿真下面,你可以查看很多硬件相關(guān)的寄存器,通過觀察這些寄存器,你可以知道代碼是不是真正有效。當(dāng)然,軟件仿真不是萬能的,很多問題還是要到在線調(diào)試才能發(fā)現(xiàn)。 在軟件仿真之前,先檢查一下配置是不是正確,點(diǎn)擊 ,確定 Target選項(xiàng)卡內(nèi)容如下所示(主要檢查芯片型號(hào)和晶振頻率,其他的一般默認(rèn)就可以): 圖 315 Target 選項(xiàng)卡 確認(rèn)了芯片以及外部晶振頻率( M)之后,基本上就確定了硬件環(huán)境了,接下來,我們?cè)倏礀|南大學(xué)成賢學(xué)院畢業(yè)論文 20 Debug選項(xiàng)卡,設(shè)置為如下圖所示的設(shè)置: 圖 316 Debug 選項(xiàng)卡 主要確認(rèn)是 Use Simulator是否選擇(因?yàn)槿绻x擇右邊的 Use,那就是用 ULINK進(jìn)行硬件 Debug了,這個(gè)將在下面介紹),其他的采用默認(rèn)的就可以。接下來,我們點(diǎn)擊 (開始 /停止仿真按鈕),開始仿真,出現(xiàn)如下界面 : 圖 317 開始仿真 可以發(fā)現(xiàn),多出了一個(gè)工具條,這個(gè)工具條對(duì)于我們仿真是非常有用的,下面簡單介紹一下工具條相關(guān)按鈕的功能,工具條部分按鈕的功能如下圖所示 東南大學(xué)成賢學(xué)院畢業(yè)論文 21 圖 318 仿真工具條 復(fù)位:其功能等同于硬件上按復(fù)位按鈕。代碼重新執(zhí)行。 掛起:此按鈕在程序一直執(zhí)行的時(shí)候會(huì)變?yōu)橛行?,通過按該按鈕,就可以使程序停止下來,進(jìn)入到單步調(diào)試狀態(tài)。 執(zhí)行過去:在碰到有函數(shù)的地方,通過該按鈕就可以單步執(zhí)行過這個(gè)函數(shù),而不進(jìn)入這個(gè)函數(shù)單步執(zhí)行。 執(zhí)行到光標(biāo)處:該按鈕可以迅速的使程序運(yùn)行 到光標(biāo)處,其實(shí)是挺像執(zhí)行到斷點(diǎn)處按鈕功能,但是兩者是有區(qū)別的,斷點(diǎn)可以有多個(gè),但是光標(biāo)所在處只有一個(gè)。 觀看變量 /堆棧窗口:該按鈕按下,會(huì)彈出一個(gè)顯示變量的窗口,在里面可以查看各種你想要看的變量值,也是很常用的一個(gè)調(diào)試窗口。 內(nèi)存查看窗口:該按鈕按下,會(huì)彈出一個(gè)內(nèi)存查看窗口, 可以在里面輸入你要查看的內(nèi)存地址,然后觀察這一片內(nèi)存的變化情況, 是很常用的一個(gè)調(diào) 試窗口 性能分析窗口:按下該按鈕,會(huì)彈出一個(gè)觀看各個(gè)函數(shù)執(zhí)行時(shí)間和所占百分比的窗口,用來分析函數(shù)的性能是比較有用的。 其他幾個(gè)按鈕用的比較少,以上是比較常用的,當(dāng)然也不是每 次都用得著這么多,具體看你程序調(diào)試的時(shí)候有沒有必要觀看這些東西 來決定要不要看。然后調(diào)節(jié)一下這兩個(gè)窗口的位置,如下圖所 示: 東南大學(xué)成賢學(xué)院畢業(yè)論文 22 圖 319 調(diào)出仿真串口打印窗口 我們把光標(biāo)放到 的 09 行,然后雙擊鼠標(biāo)左鍵,可以看到在 09 行的右邊出現(xiàn)了一個(gè)紅框,即表示設(shè)置了一個(gè)斷點(diǎn)(也可以通過鼠標(biāo)右鍵彈出菜單來加入,再次雙擊則取消)??梢钥吹?,有很多外設(shè)可以查看,這里我們查看的是串口 1的情況。我們接著單擊一下 ,執(zhí)行完串口初始化函數(shù),得到了如上面右邊圖片所示的串口信息。這個(gè)函數(shù)里面大概執(zhí)行了哪些操作。 然后我們繼續(xù)單擊 按鈕,一步步執(zhí)行,最后就會(huì)看到在 USART 1 中打印出相關(guān)的信息,如下圖所示: 東南大學(xué)成賢學(xué)院畢業(yè)論文 24 圖 323 串口 1 輸出信息 這樣證明我們的仿真是通過的,代碼運(yùn)行會(huì)在串口 1 不停的輸出 t 的值,每 (時(shí)間可以通過 IDE的最下面 觀看到),并且 t 自增。再次按下 結(jié)束仿真。 在線調(diào)試 利用串口,我們只能下載程序,并不能實(shí)時(shí)跟蹤,而利用調(diào)試工具,比如 JLINK、 ULINK等就可以實(shí)時(shí)跟蹤程序,使你的開發(fā)事半功倍。 Jlink簡介 JLink是 SEGGER公司為支持仿真 ARM內(nèi)核芯片推出的 JTAG仿真器。 JLINK仿真器 V8版,其仿真速度和功能遠(yuǎn)非簡易 的并口 WIGGLER調(diào)試器可比。 全部功能外,軟硬件上都有改進(jìn):( 1) SWD硬件接口支持 , 支持 。( 3) 增強(qiáng)了 JTAG 驅(qū)動(dòng)能力,提高了目標(biāo)板的兼容性。 JLink ARM主要特 點(diǎn) : IAR EWARM集成開發(fā)環(huán)境無縫連接的 JTAG仿真器。 支持 ADS,IAR,KEIL,WINARM,REALVIEW等幾乎所有的開發(fā)環(huán)境。 最高 JTAG速度 12MHz。 自動(dòng)速度識(shí)別功能。 完全即插即用。 支持多 JTAG器件串行連接。 選配 14芯 JTAG仿真插頭。 帶 JLink TCP/IP server,允許通過 TCP/ IP網(wǎng)絡(luò)使用 JLink。所以,我們有 2種方式可以用來調(diào)試, JTAG 調(diào)試的時(shí)候,占用的 I/O 線比較多,而 SWD 調(diào)試的時(shí)候占用的 I/O線很少,只需要 2 跟即可。所以建議大家在調(diào)試的時(shí)候,一定要選擇 SW模式。 單擊 OK,完 成此部分設(shè)置,接下來我們還需要在 Utilities選項(xiàng)卡里面設(shè)置下載時(shí)的目標(biāo)編程器,如下圖所示: 圖 326 FLASH 編程器選擇 上圖中,我們選擇 JLINK來調(diào)試 CortexM3,然后點(diǎn)擊 Settings,設(shè)置如下圖所示: 東南大學(xué)成賢學(xué)院畢業(yè)論文 27 圖 327 編程設(shè)置 這里要根據(jù)不同的 MCU選擇 FLASH的大小,因?yàn)槲覀冮_發(fā)板使用的是 STM32F103RBT6,其 FLASH大小為 128K,所以我們?cè)?Programming Algorithm里面選擇 128K型號(hào)的 STM32。其他默認(rèn)設(shè)置即可。再點(diǎn)擊 ,開始仿真(如果開發(fā)板的代碼沒被更新過,則會(huì)先更新代碼,再仿真,你也可以通過按 ,只下載代碼,而不進(jìn)入仿真,特別注意:開發(fā)板上的 B0要設(shè)置到 GND,否則代碼下載后不會(huì)自動(dòng)運(yùn)行 的?。缦聢D所示: 圖 328 開始仿真 可以看到都是一些匯編碼的查看,如果我們要快速運(yùn)行到 main函數(shù),可以在 main 函數(shù)的第一句語句處放入斷點(diǎn),然后點(diǎn)擊 ,來快速執(zhí)行到該處。 程序下載 STM32的程序下載有多種方法: USB、串口、 JTAG、 SWD等,這幾種方式 都可以用來給 STM32 下載代碼。 STM32的串口下載一般是通過串口 1 下載的,本設(shè)計(jì)的硬件 板,不是通過 RS232串口下載的,而是通過自帶的 USB串口來下載。 下面,我們就一步步 實(shí)現(xiàn) 如何在實(shí)驗(yàn)平臺(tái)上利用 USB串口來下載代碼。這里由于 硬件板自帶了一鍵下載電 路,所以 并不需要去關(guān)心 BOOT0和 BOOT1的狀態(tài),但是為了讓下載完后可以按復(fù)位執(zhí)行程序,要把 BOOT1和 BOOT0都設(shè)置為 0。在驅(qū)動(dòng)安裝完成之后,拔掉 USB 線,然后重新插入電腦,此時(shí)電腦就會(huì)自動(dòng)給其安裝驅(qū)動(dòng)了。 在安裝了 USB 串口驅(qū)動(dòng)之后,我們就可以開始串口下載程序了,這里我們的串口下載軟件選擇的是 mcuisp,該軟件屬于第三方軟件,由單片機(jī)在線編程網(wǎng)提供,大家可以去 免費(fèi)下載,目前最新版本為 。下面我們看看如何設(shè)置:先在工程里面點(diǎn)擊,打開 Output選項(xiàng) 卡,勾選 Create HEX File選項(xiàng),如下圖所示: 圖 334 MDK 設(shè)置生成 HEX 文件 圖中選中第二個(gè)紅圈內(nèi)的選項(xiàng),可以使編譯器產(chǎn)生瀏覽信息,方便快速查看函數(shù)和變量等,這點(diǎn)在后面會(huì)介紹。用 mcuisp軟件打開 USER文件夾,找到 ,打開并進(jìn)行相應(yīng)設(shè)置后,如下圖所示: 圖 337 mcuisp 設(shè)置 東南大學(xué)成賢學(xué)院畢業(yè)論文 32 圖 337中紅圈圈中的設(shè)置,是我們建議的設(shè)置。否則,下載代碼之后,必須先將 B0連接 GND,再按復(fù)位鍵,才能開始運(yùn)行剛剛下載的代碼。 編程前重裝文件,該選項(xiàng)也比較有用,當(dāng)選中該選 項(xiàng)之后, mcuisp 會(huì)在每次編程之前,將 hex文件重新裝載一遍,這對(duì)于代碼調(diào)試的時(shí)候是比較有用的。如果不選擇,則無法實(shí)現(xiàn)一鍵下載功能。 在裝載了 hex文件之后,我們要下載代碼還需要選擇串口,這里 mcuisp 有智能串口搜索功能。也可以通過點(diǎn)擊菜單欄的搜索串口,來實(shí)現(xiàn)自動(dòng)搜索當(dāng)前可用串口。搜索完串口之后界面如下圖所示: 圖 338 搜索串口 從之前 USB串口的安裝可知,開發(fā)板的串口被識(shí)別為 COM5了 ,所以我 選擇 COM5。另外界面提示已經(jīng)下載完成(如果老提示:開始連接?,需要檢查一下,開發(fā)板的設(shè)置是否正確,是否有其他因素干擾等),并且從 0X80000000處開始運(yùn)行了,我 打開串口調(diào)試助手選擇 COM5,會(huì)發(fā)現(xiàn)從 硬件 板發(fā)回來的信息,如下圖所示: 圖 340 程序開始運(yùn)行了 接收到的數(shù)據(jù)和我 仿真的是一樣的,證明程序沒有 問題。 東南大學(xué)成賢學(xué)院畢業(yè)論文 34 第四章 程序設(shè)計(jì)與調(diào)試 系統(tǒng)描述 本系統(tǒng)采用基于 ARM CortexM3內(nèi)核的 STM32作為主控制器,外擴(kuò) SD卡以及 TFT彩屏。同時(shí),通過 STM32 內(nèi)部的 RTC 模塊使系統(tǒng)具有掉電不遺失日期及時(shí)鐘的功能。 圖 41 系統(tǒng)框圖 軟件設(shè)計(jì) 文件讀取 本設(shè)計(jì)需要用到 FAT(FAT16/32)文件系統(tǒng)來讀取 SD 卡上的字庫和 UNICODE到 GBK的轉(zhuǎn)換碼表到W25X16部分,因此要重點(diǎn)介紹 FAT 文件系統(tǒng)。 常用的文件系統(tǒng)有 FAT12/16/32等, FAT12是最古老的文件系統(tǒng),只能管理 8M左右的空間,現(xiàn)在基本淘汰了。 FAT32較 FAT16的優(yōu)勢還在于 FAT32采用了 更小的簇,可以更有效的保存信息,而不會(huì)造成 較 多的浪費(fèi)。這是由 XP在格式化 SD卡的時(shí)候建立的,通常 SD卡上的數(shù)據(jù)信息由 MBR、 DBR、 FAT、 FDT和數(shù)據(jù)區(qū) 5個(gè)部分組成(有的也沒有 MBR)。 MBR 稱為主引導(dǎo)記錄區(qū),該區(qū)存儲(chǔ)了分區(qū)表等信息,位于 SD卡的扇區(qū) 0(物理扇區(qū)),在其分區(qū)信息里面記錄了 DBR 所在的位置, SD卡一般只會(huì)有一個(gè)分區(qū),所以也就只要找到分區(qū) 1的 DBR 所在位置就可以了。在 DBR區(qū),我們可以知道每個(gè)扇區(qū)所占用的字節(jié)數(shù)、每個(gè)簇的扇區(qū)數(shù)、 FAT表的份數(shù)、每個(gè) FAT表的扇區(qū)數(shù)、跟目錄簇號(hào)、 FAT表 1所在的扇區(qū)等一系列非常重要的信息。 FAT表一般緊隨 DBR,另一個(gè) FAT表則緊隨第一個(gè) FAT表,這樣只要知道了第一個(gè) FAT表的位置及大小,那么第二個(gè) FAT 表的位置也就確定了。如果找到下一個(gè)簇位置,里面記錄的是“ FF FF FF 0F”,代表這個(gè)文件到此就結(jié)束了,沒有后續(xù)簇了,這樣一個(gè)文件的讀取就結(jié)束東南大學(xué)成賢學(xué)院畢業(yè)論文 35 了。 文件目錄表是另一個(gè)重要的部分, FAT 文件系統(tǒng)中(僅以短文件名介紹),文件目錄項(xiàng)在目錄表下以 32個(gè)字節(jié)的方式記錄,各 字段定義如下: 表 文件目錄項(xiàng)各字節(jié)定義 從上表可知,我們?cè)谖募哪夸涰?xiàng)就可以找到該文件的其實(shí)簇,然后在 FAT 表里面找到該簇開始的下一個(gè)簇,依次讀取這些簇就可以把整個(gè)文件讀出來了。它采用位映射存儲(chǔ)格式,除了圖像深度可選以外,不采用其 他任何壓縮,因此, BMP文件所占用的空間很大。 BMP 文件存儲(chǔ)數(shù)據(jù)時(shí),圖像的掃描方式是按從左到右、從下到上的順序。 部分代碼: //BMP信息頭 typedef __packed struct { DWORD biSize 。 LONG biWidth 。 //說明圖象的高度,以象素為單位 WORD biPlanes 。 //說明比特?cái)?shù) /象素,其值為 1 2或 32 DWORD biCompression 。其值可以是下述值之一: DWORD biSizeImage 。當(dāng)用 BI_RGB格式時(shí),可設(shè)置為 0 東南大學(xué)成賢學(xué)院畢業(yè)論文 36 LONG biXPelsPerMeter 。//說明垂直分辨率,用象素 /米表示 DWORD biClrUsed 。 //說明對(duì)圖象顯示有重要影響的顏色索引的數(shù)目,如果是 0,表示都重要。 //BMP頭文件 typedef __packed struct { WORD bfType 。BM3
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1