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

正文內(nèi)容

基于stm32數(shù)碼相框系統(tǒng)設(shè)計與實現(xiàn)軟件畢業(yè)論文(參考版)

2024-08-07 05:35本頁面
  

【正文】 不過,我們最常用的,最經(jīng)濟的,就是通過串口給 STM32 下載代碼。如下圖所示:圖 329 程序運行到斷點處接下來,我們就可以和軟件仿真一樣的開始仿真了,不過這是真正的在硬件上的仿真,其結(jié)果更可信。在設(shè)置完之后,點擊 OK,然后再點擊 OK,回到 IDE 界面,編譯一下工程。然后選中Reset and Run,以實現(xiàn)在編程后自動啟動。Max Clock,可以點擊 Auto Clk 來自動設(shè)置,這里設(shè)置 JLINK 的調(diào)試速度為 10MHZ,如果 USB 數(shù)據(jù)線比較差,那么可能會出問題,此時,可以通過降低這里的速率來試試。在安裝了 JLINK V8 之后,我們接上 JLINKV8,并把 JTAG 口插到硬件板上,打開之前新建的工程,點擊 ,打開 Options for Target 選項卡,在 Debug 欄選擇仿真工具為 CortexM3 JLINK,如下圖所示圖 324 Debug 選項卡設(shè)置然后我們點擊 Settings,設(shè)置 JLINK 的一些參數(shù),如下圖所示:圖 325 JLINK 模式設(shè)置上圖中,我們使用 JLINK V8 的 SW 模式調(diào)試,因為我們 JTAG 需要占用比 SW 模式多很多的I/O 口,而在硬件板上這些 I/O 口都是非常有用的,并造成部分外設(shè)無法使用。 Jlink 調(diào)試步驟JLINKV8 支持 JTAG 和 SWD,而 STM32 也支持 JTAG 和 SWD。選配用于 5V 目標板的適配器。標準 20 芯 JTAG 仿真插頭。使用 USB 電源(但不對目標板供電)帶 USB 連接線和 20 芯扁平電纜。  監(jiān)測所有 JTAG 信號和目標板電壓。 目標板電壓范圍 –,5V 兼容。   下載速度高達 ARM7:600kB/s,ARM9:550kB/s,通過 DCC 最高可達 800 KB/s。   支持所有 ARM7/ARM9 內(nèi)核的芯片,以及 CortexM3,包括 Thumb 模式。(4)優(yōu)化了固件結(jié)構(gòu),使應(yīng)用程序區(qū)擴大。(2) 使用雙色 LED 可以指示更多的工作狀態(tài), 只有 1 個LED 指示燈。JLINK 支持ARMARMARM1CortexM3 核心,支持 ADS、IAR、KEIL 開發(fā)環(huán)境。配合 IAR EWAR,ADS,KEIL,WINARM,Real View 等集成開發(fā)環(huán)境支持所有 ARM7/ARM9/ARM11 內(nèi)核芯片的仿真,通過 RDI 接口和各集成開發(fā)環(huán)境無縫連接,操作方便、連接方便、簡單易學(xué),是學(xué)習(xí)開發(fā) ARM最好最實用的開發(fā)工具。這里我們以 JLINK V8 為例,說說如何在線調(diào)試。至此,我們軟件仿真算是結(jié)束了,接下來我們下載代碼到硬件上來真正驗證一下我們的代碼是否可行。與我們預(yù)期的目地是一致的。這樣可以很清楚的告訴你,當(dāng)前的串口是否可用,你的設(shè)置是否正確,同樣這樣的方法也可以適用于很多其他外設(shè)。你可以對比一下這兩個的區(qū)別,就知道在uart_init(72,9600)。如下圖所示圖 321 查看串口 1 相關(guān)寄存器單擊 USART1 后會在 IDE 之外出現(xiàn)一個如下界面: 圖 322 串口 1 各寄存器初始化前后對比左邊這個就是 STM32 默認時候,串口 1 的狀態(tài),從中可以看到所有與串口相關(guān)的寄存器全部在這上面表示出來了,而且有當(dāng)前串口的波特率等信息的顯示。然后我們點擊,執(zhí)行到斷點處,如下圖所示:圖 320 執(zhí)行到斷點處我們不忙著往下執(zhí)行,現(xiàn)在來點擊菜單欄的 PeripheralsUSARTsUSART1。這樣,我們在上面的仿真界面里面選內(nèi)存查看窗口、串口打印窗口。邏輯分析窗口:按下該按鈕會彈出一個邏輯分析窗口,通過 SETUP 按鈕新建一些 I/O 口,就可以觀察這些 I/O 口的電平變化情況,以多種形式顯示出來,比較直觀。串口打印窗口:該按鈕按下,會彈出一個串口調(diào)試助手界面的窗口,用來顯示從串口打印出來的內(nèi)容。匯編窗口:通過該按鈕,就可以查看匯編代碼,這對分析程序很有用。執(zhí)行出去:該按鈕是在進入了函數(shù)單步調(diào)試的時候,有時候你可能不必再執(zhí)行該函數(shù)的剩余部分了,通過該按鈕就直接一步執(zhí)行完函數(shù)余下的部分,并跳出函數(shù),回到函數(shù)被調(diào)用的位置。執(zhí)行進去:該按鈕用來實現(xiàn)執(zhí)行到某個函數(shù)里面去的功能,在沒有函數(shù)的情況下,是等同于執(zhí)行過去按鈕的。執(zhí)行到斷點處:該按鈕用來快速執(zhí)行到斷點處,有時候你并不需要觀看每步是怎么執(zhí)行的,而是想快速的執(zhí)行到程序的某個地方看結(jié)果,這個按鈕就可以實現(xiàn)這樣的功能。相當(dāng)于實現(xiàn)了一次硬復(fù)位。確認了這項之后,我們便可以選擇OK,退出 Options for Target 對話框了。接下來我們開始進行軟件仿真。另外一個優(yōu)點是不必頻繁的刷機,從而延長了 STM32 的 FLASH 壽命。圖 313 頭文件包含路徑設(shè)置點擊 OK 確認,回到 IDE,此時再點擊 按鈕,再編譯一次,發(fā)現(xiàn)沒錯誤了,得到如下界面:圖 314 再次編譯結(jié)果至此,一個完整的 STM32 開發(fā)工程在 MDK 下建立了,接下來我們就是進行軟件仿真了?,F(xiàn)在我們點擊 (Options for Target 按鈕),彈出 Options for Target’Target 1’對話框,選擇 C/C++選項卡,如下圖所示:圖 312 加入頭文件包含路徑在 Include Paths 處,點擊 2 處的按鈕。雙擊紅圈內(nèi)的內(nèi)容,你會發(fā)現(xiàn)在 的 01 行出現(xiàn)了一個淺綠色的小箭頭,說明錯誤是這個地方產(chǎn)生的。}}點擊 (部分編譯按鈕)編譯一下,會在 Output Windows 信息欄中發(fā)現(xiàn)如下報錯信息:(1): error: 5:can not open source input file : No such file or directory。delay_ms(500)。 //延時初始化uart_init(72,9600)。Stm32_Clock_Init(9)。如下圖所示:圖 38 在編輯狀態(tài)下的體現(xiàn)接著,我們新建一個 文件,并保存在 USER 目錄下,然后雙擊 USER 組,會彈出加載文件的對話框,此時我們在 USER 目錄下選擇 文件,加入到 USER 組下。此時 USER 組下還是沒有任何文件的,得到如下圖所示的界面:圖 37 修改結(jié)果點擊 OK,退出該界面返回 IDE。之后,TEST 文件夾下的文件如圖 34 所示:圖 34 TEST 文件夾最終摸樣然后我們在 USER 文件夾下面找到 ,打開它,然后在 Target 目錄樹上右鍵Manage Components。到這里,我們就可以開始編寫自己的代碼了。如圖 33 所示: 圖 33 提示界面啟動代碼是一段和硬件相關(guān)的匯編代碼,是必不可少的!這段代碼的具體作用如下:①堆棧的初始化;②向量表定義;③地址重映射及中斷向量表的轉(zhuǎn)移;④設(shè)置系統(tǒng)時鐘頻率;⑤中斷寄存器的初始化。 新建 RVMDK 工程首先,打開 MDK(以下簡稱 RVMDK 為 MDK)軟件,再點擊 ProjectNew uVision Project 菜單項,則彈出如圖 31 所示界面:圖 31 保存工程界面新建一個文件夾 TEST,然后把工程名字設(shè)為 test,點擊“保存”按鈕,彈出選擇器件的對話框,因為我們的開發(fā)板使用的是 STM32F103RBT6,所以在這里我們選擇 STMicroelectronics 下面的 STM32F103RB(如果使用的是其他系列的芯片,選擇相應(yīng)的型號就可以了)。另外,國內(nèi)大多數(shù)單片機工程師都接觸和使用過 KEIL,相信大家都知道 KEIL 的使用是非常簡單的,而且很容易入手?,F(xiàn)在 RealView 的最新版本是 , 以上版本的 RVMDK 對 IDE 界面進行了很大改變,并且支持 CortexM0 內(nèi)核的處理器。與 ARM 之前的工具包 相比,RealView 編譯器具有代碼更小、性能更高的優(yōu)點。Vision3 集成開發(fā)環(huán)境與RealView 編譯器。SD 卡讀取數(shù)據(jù),這里通過 CMD17 來實現(xiàn),具體過程如下:發(fā)送 CMD17;接收卡響應(yīng) R1;接收數(shù)據(jù)起始令牌 0XFE;接收數(shù)據(jù);接收 2 個字節(jié)的 CRC,如果沒有開啟 CRC,這兩個字節(jié)在讀取后可以丟掉;8CLK 之后禁止片選;以上就是一個典型的讀取 SD 卡數(shù)據(jù)過程,SD 卡的寫與讀數(shù)據(jù)差不多,寫數(shù)據(jù)通過 CMD24 來實現(xiàn),具體過程如下:發(fā)送 CMD24;接收卡響應(yīng) R1;發(fā)送寫數(shù)據(jù)起始令牌 0XFE;發(fā)送數(shù)據(jù);發(fā)送 2 字節(jié)的偽 CRC;8CLK 之后禁止片選;第三章 編程環(huán)境介紹 簡介RVMDK 源自德國的 KEIL 公司,是 RealView MDK 的簡稱,在全球 RVMDK 被超過 10 萬的嵌入式開發(fā)工程師使用。SPI 模式下幾個重要的操作命令,如下表所示:表 SPI 模式下 SD 卡部分操作指令其中 R1 的回應(yīng)格式如下表所示:表 SD 卡 R1 回應(yīng)格式SD 卡的典型初始化過程如下:初始化與 SD 卡連接的硬件條件(MCU 的 SPI 配置,I/O 口配置);上電延時(74 個 CLK);復(fù)位卡(CMD0);激活卡,內(nèi)部初始化并獲取卡類型(CMD1(用于 MMC 卡)、CMD5CMD41);查詢 OCR,獲取供電狀況(CMD58);是否使用 CRC(CMD59);設(shè)置讀寫塊數(shù)據(jù)長度(CMD16);讀取 CSD,獲取存儲卡的其他信息(CMD9);發(fā)送 8CLK 后,禁止片選;這樣我們就完成了對 SD 卡的初始化,這里面我們一般設(shè)置讀寫塊數(shù)據(jù)長度為 512 個字節(jié),并禁止使用 CRC。不過在發(fā)送CMD0 之前,要發(fā)送74 個時鐘,這是因為 SD 卡內(nèi)部有個供電電壓上升時間,大概為 64 個 CLK,剩下的 10 個 CLK 用于 SD 卡同步,之后才能開始 CMD0 的操作,在卡初始化的時候,CLK 時鐘最大不能超過 400KHZ。在 SPI 模式下,CS/MOSI/MISO/CLK 都需要加 10~100K 左右的上拉電阻。SPI 模式允許簡單的通過 SPI 接口來和 SD 卡通信,這種模式同 SD 卡模式相比就是喪失了速度。SD 卡一般支持兩種操作模式:SD 卡模式與 SPI 模式。大小猶如一張郵票的 SD 記憶卡,重量只有 2 克,但卻擁有高記憶容量、快速數(shù)據(jù)傳輸率、極大的移動靈活性以及很好
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1