版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、目錄實(shí)驗(yàn)一跑馬燈實(shí)驗(yàn)錯(cuò)誤!未定義書簽實(shí)驗(yàn)二按鍵輸入實(shí)驗(yàn)錯(cuò)誤!未定義書簽實(shí)驗(yàn)三串口實(shí)驗(yàn)錯(cuò)誤!未定義書簽實(shí)驗(yàn)四外部中斷實(shí)驗(yàn)錯(cuò)誤!未定義書簽實(shí)驗(yàn)五 獨(dú)立看門狗實(shí)驗(yàn)實(shí)驗(yàn)七定時(shí)器中斷實(shí)驗(yàn)錯(cuò)誤!未定義書簽錯(cuò)誤!未定義書簽實(shí)驗(yàn)十三ADC實(shí)驗(yàn)實(shí)驗(yàn)十五DMA實(shí)驗(yàn)實(shí)驗(yàn)十六I2C實(shí)驗(yàn)實(shí)驗(yàn)十七SPI實(shí)驗(yàn)錯(cuò)誤!未定義書簽錯(cuò)誤!未定義書簽錯(cuò)誤!未定義書簽錯(cuò)誤!未定義書簽錯(cuò)誤!未定義書簽錯(cuò)誤!未定義書簽實(shí)驗(yàn)二H一紅外遙控實(shí)驗(yàn)實(shí)驗(yàn)二十二DS18B20實(shí)驗(yàn)實(shí)驗(yàn)一跑馬燈實(shí)驗(yàn)一.實(shí)驗(yàn)簡介我的第一個(gè)實(shí)驗(yàn),跑馬燈實(shí)驗(yàn)。二.實(shí)驗(yàn)?zāi)康恼莆誗TM32開發(fā)環(huán)境,掌握從無到有的構(gòu)建工程。三.實(shí)驗(yàn)內(nèi)容熟悉MDK KEIL開發(fā)環(huán)境,構(gòu)建基于固件庫的
2、工程,編寫代碼實(shí)現(xiàn)跑馬燈工程。通過ISP下載代碼到實(shí)驗(yàn)板,查看運(yùn)行結(jié)果。使用JLINK下載代碼到目標(biāo) 板,查看運(yùn)行結(jié)果,使用JLINK在線調(diào)試。四.實(shí)驗(yàn)設(shè)備硬件部分:PC計(jì)算機(jī)(宿主機(jī))、亮點(diǎn)STM32實(shí)驗(yàn)板、JLINKo軟件部分: PC 機(jī) WINDOWS 系統(tǒng)、MDK KEIL 軟件、ISP 軟件。五.實(shí)驗(yàn)步驟1 .熟悉MDK KEIL開發(fā)環(huán)境2 .熟悉串口編程軟件ISP3 .查看固件庫結(jié)構(gòu)和文件4 .建立工程目錄,復(fù)制庫文件5 .建立和配置工程6 .編寫代碼7 .編譯代碼8,使用ISP下載到實(shí)驗(yàn)板9 .測試運(yùn)行結(jié)果10 .使用JLINK下載到實(shí)驗(yàn)板11 .單步調(diào)試12 .記錄實(shí)驗(yàn)過程,撰
3、寫實(shí)驗(yàn)報(bào)告源代碼:兩個(gè)燈LEDO與LED1實(shí)現(xiàn)交替閃爍的類跑馬燈效果,每300ms閃爍一次七.實(shí)驗(yàn)總結(jié)通過本次次實(shí)驗(yàn)我了解了 STM32開發(fā)板的基本使用,初次接觸這 MDK KEILC 個(gè)開發(fā)板和件,對軟件操作不太了解,通過這次實(shí)驗(yàn)了解并熟練 軟用這個(gè) 地使用MDK KEIL軟件,編程和完成一些功能的實(shí)現(xiàn)。作為軟件來STM32的入門第一個(gè)例子,詳細(xì)介紹了 口操作,同時(shí)鞏固了前面的學(xué)習(xí),并進(jìn) 一步介紹了 MDK的軟件仿真功能。實(shí)驗(yàn)二按鍵輸入實(shí)驗(yàn)一.實(shí)驗(yàn)簡介在實(shí)驗(yàn)一的基礎(chǔ)上,使用按鍵控制流水燈速度,及使用按鍵控制流水燈流水方向。二.實(shí)驗(yàn)?zāi)康氖炀毷褂脦旌瘮?shù)操作GPIO,掌握中斷配置和中斷服務(wù)程序編寫
4、方法,掌握通過 全局變量在 中斷服務(wù)程序和主程序間通信的方法。三.實(shí)驗(yàn)內(nèi)容實(shí)現(xiàn)初始化GPIO,并配置中斷,在中斷服務(wù)程序中通過修改全局變量,達(dá)到控 制流水燈速度及方向。使用JLINK下載代碼到目標(biāo)板,查看運(yùn)行結(jié)果,使用JLINK在線調(diào)試。四.實(shí)驗(yàn)設(shè)備硬件部分:PC計(jì)算機(jī)(宿主機(jī))、亮點(diǎn)STM32實(shí)驗(yàn)板、JLINK.示波器軟件 部分:PC機(jī)WINDOWS系統(tǒng)、MDK KEIL軟件、ISP軟件。五.實(shí)驗(yàn)步驟1在實(shí)驗(yàn)1代碼的基礎(chǔ)上,編寫中斷初始化代碼2在主程序中聲明全局變量,用于和中斷服務(wù)程序通信,編寫完成主程序3編寫中斷服務(wù)程序4編譯代碼,使用JLINK下載到實(shí)驗(yàn)板5.單步調(diào)試6記錄實(shí)驗(yàn)過程,撰寫
5、實(shí)驗(yàn)報(bào)告六.實(shí)驗(yàn)結(jié)果及測試源代碼: 我們將通過MiniSTM32板上載有的3個(gè)按鈕,來控制板上的2個(gè)LED,其中 KEYO控制LEDO,按一次亮,再按一次,就滅。KEY1控制LED1,效果同 KEYOo KEY_2 (KEY_UP),同時(shí)控 制LEDO和LED1,按一次,他們的狀態(tài)就翻 轉(zhuǎn)一次。七.實(shí)驗(yàn)總結(jié)通過本次實(shí)驗(yàn),我學(xué)會(huì)了如何使用STM32的10 口作為輸入用。TM32的10 口做輸入使用的時(shí)候,是通過讀取IDR的內(nèi)容來讀取10 口的狀態(tài)的。這里 需要注意的是KEYO和KEY1是低電平有效的,而WK_UP是高電平有效的, 而且要確認(rèn)WK_UP按鈕與DS18B20的連接是否已經(jīng)斷并,要先斷
6、開,否則 DS18B20會(huì)干擾WK_UP按鍵!并且KEYO和KEY1連接在與JTAG相關(guān)的10 口 上,所以在軟件編號(hào)的時(shí)候要先禁用JTAG功能,才能把這兩個(gè)10 口當(dāng)成普 通10 口使用。實(shí)驗(yàn)三串口實(shí)驗(yàn)一.實(shí)驗(yàn)簡介編寫代碼實(shí)現(xiàn)串口發(fā)送和接收,將通過串口發(fā)送來的數(shù)據(jù)回送回去。二.實(shí)驗(yàn)?zāi)康恼莆誗TM32基本串口編程,進(jìn)一步學(xué)習(xí)中斷處理。三.實(shí)驗(yàn)內(nèi)容編寫主程序,初始化串口 1,設(shè)置波特率為9600,無校驗(yàn),數(shù)據(jù)位8位,停 止位1位 編寫中斷服務(wù)程序代碼實(shí)現(xiàn)將發(fā)送過來的數(shù)據(jù)回送。四.實(shí)驗(yàn)設(shè)備硬件部分:PC計(jì)算機(jī)(宿主機(jī))、亮點(diǎn)STM32實(shí)驗(yàn)板、JLINK、示波器。軟 件部分:PC機(jī)WINDOWS系統(tǒng)
7、、MDK KEIL軟件、ISP軟件、串口調(diào)試助手。五.實(shí)驗(yàn)步驟1編寫串口初始化代碼2編寫中斷服務(wù)程序代碼3編譯代碼,使用JLINK或ISP下載到實(shí)驗(yàn)板4記錄實(shí)驗(yàn)過程,撰寫實(shí)驗(yàn)報(bào)告六.實(shí)驗(yàn)結(jié)果及測試源代碼:把代碼下載到MiniSTM32開發(fā)板,可以看到板子上的LEDO開始閃爍,說明程 序已經(jīng)在 跑了。接著我們打開串口調(diào)試助手,看到如下信息:證明串口數(shù)據(jù)發(fā)送沒問題。接著,我們在發(fā)送區(qū)輸入上面的文字,輸入完后按 回車鍵。然后單擊發(fā)送,可以得到如下結(jié)果:串口 :|8M3 m秒率36003校卷位none0數(shù)需位:;8停止位:7;三美加串口”備輸入數(shù)據(jù),以回軍鍵結(jié)束 請輸入數(shù)據(jù)XI回至健結(jié)束 請輛入數(shù)據(jù),
8、以回李鍵活耒 話輸入數(shù)據(jù)以回車茂沽束Mn6TM3講發(fā)夜串口實(shí)驗(yàn) 正點(diǎn)膘子的UENTEK港交接收區(qū)停止顯示J>I以以以以以I?I以 塞屈瓦&妃菽£曾 單”型一, A人入人入入入入 憫輸輛輛輛輸祠輸 話清請清潘話話清說彈稗鍵疑as健 不車車爭車車下車 Q回回回回圓IR)回HFUV JVRRUk -fv結(jié)沫結(jié)結(jié)給結(jié)結(jié)結(jié)自動(dòng)??崭袷斤@示保存球友送的消息力:ALICNTEK MrSTM32開發(fā)極!語輸入料足以回至薜靖申TOP|另仔為清空發(fā)送區(qū) f Adjro Qdec 周即1瑞毫秒AUOITCK M腦STM笈開發(fā)慢!TX:31RX: 148027計(jì)數(shù)器活零打開文件肝至我 軟件升輾
9、 正.點(diǎn)原子制作15 關(guān)出程序七.實(shí)驗(yàn)總結(jié)通過本次實(shí)驗(yàn),我進(jìn)一步了解了串口的使用,學(xué)會(huì)了通過串口發(fā)送和接收數(shù) 據(jù),將通過串口發(fā)送來的數(shù)據(jù)回送回去。該實(shí)驗(yàn)的硬件配置不同于前兩個(gè)實(shí) 驗(yàn),串口 1與USB串口默認(rèn)是分開的,并沒有在PCB上連接在一起,需要通過跳線帽來連接一下。這里我們把P4的RXD和TXD用跳線帽與P3的PA9和PA10連接起來實(shí)驗(yàn)四外部中斷實(shí)驗(yàn)一.實(shí)驗(yàn)簡介STM32的10 口在本章第一節(jié)有詳細(xì)介紹,而外部中斷在第二章也有詳細(xì)的闡 述。這里 我們將介紹如何將這兩者結(jié)合起來,實(shí)現(xiàn)外部中斷輸入。二.實(shí)驗(yàn)?zāi)康倪M(jìn)一步掌握串口編程,進(jìn)一步學(xué)習(xí)外部中斷編程,提高編程能力。三.實(shí)驗(yàn)內(nèi)容初始化10
10、口的輸入,開啟復(fù)用時(shí)鐘,設(shè)置10與中斷的映射關(guān)系,從而開啟 與10 口相對 應(yīng)的線上中斷事件,設(shè)置觸發(fā)條件。配置中斷分組(NVIC), 并使能中斷,編寫中斷服務(wù)函數(shù)。四.實(shí)驗(yàn)設(shè)備硬件部分:PC計(jì)算機(jī)(宿主機(jī))、亮點(diǎn)STM32實(shí)驗(yàn)板、JLINK、示波器。 軟件部分:PC機(jī)WINDOWS系統(tǒng)、MDK KEIL軟件、ISP軟件、串口調(diào)試助 手。五.實(shí)驗(yàn)步驟1 .編寫中斷服務(wù)程序代碼2 .使用ISP下載到實(shí)驗(yàn)板3 .測試運(yùn)行結(jié)果4 .記錄實(shí)驗(yàn)過程,撰寫實(shí)驗(yàn)報(bào)告六.實(shí)驗(yàn)結(jié)果及測試源代碼:打開串口助手。七.實(shí)驗(yàn)總結(jié)首先需要將10設(shè)置為中斷輸入口:I)初始化10 口為輸入。2)開啟10 口復(fù)用時(shí)鐘,設(shè)置10
11、 口與中斷線的映射關(guān)系。3)開啟與該10 口相對的線上中斷/事件,設(shè)置觸發(fā)條件。4)配置中斷分組(NVIC),并使能中斷。5)編寫中斷服務(wù)函數(shù)。這一節(jié),使用的是中斷來檢測按鍵,通過WK_UP按鍵實(shí)現(xiàn)按一次LED0和LED 1同時(shí) 翻轉(zhuǎn),按KEYO翻轉(zhuǎn)LEDO,按KEY1翻轉(zhuǎn)LED1。試驗(yàn)中外部中斷函數(shù)不能進(jìn)入的原因分析:1) GPIO或者AFIO的時(shí)鐘沒有開啟。2) GPIO和配置的中斷線路不匹配。3)中斷觸發(fā)方式和實(shí)際不相符合。4)中斷處理函數(shù)用庫函數(shù)時(shí),寫錯(cuò),經(jīng)??赡艹霈F(xiàn)數(shù)字和字母之間沒有下 劃線。5)外部中斷是沿觸發(fā),有可能不能檢測到沿,比如中斷線是低電平(浮空 輔),觸I發(fā)是下3沿觸發(fā)
12、,可能會(huì)出現(xiàn)一直是低電平,高電平的時(shí)候是一樣的情況,電 平持續(xù)為高電平。6)沒有用軟件中斷來觸發(fā)外部中斷,調(diào)用函數(shù)EXTI_GenerateSWInterrup; t ,因?yàn)檐浖?中斷先于邊沿中斷處理。實(shí)驗(yàn)五 獨(dú)立看門狗實(shí)驗(yàn)一.實(shí)驗(yàn)簡介獨(dú)立看門狗QWDG)由專用的低速時(shí)鐘(LSI)驅(qū)動(dòng),即使主時(shí)鐘發(fā)生故障它也 仍然有效。窗口看苜狗由從APB1時(shí)鐘分頻后得到的時(shí)鐘驅(qū)動(dòng),通過可配置的時(shí)間窗口來檢 測應(yīng)用程序非 正常的過遲或過早的操作。二.實(shí)驗(yàn)?zāi)康耐ㄟ^編程,編寫一個(gè)獨(dú)立看門狗驅(qū)動(dòng)程序三.實(shí)驗(yàn)內(nèi)容啟動(dòng)STM32的獨(dú)立看門狗,從而使能看門狗,在程序里面必須間隔一定時(shí)間 喂狗,否則 將導(dǎo)致程序復(fù)位。利用這
13、一點(diǎn),我們本章將通過一個(gè)LED燈來 指示程序是否重啟,來驗(yàn) 證STM32的獨(dú)立看門狗。四.實(shí)驗(yàn)設(shè)備硬件部分:PC計(jì)算機(jī)(宿主機(jī))、亮點(diǎn)STM32實(shí)驗(yàn)板、JLINKo軟件部分: PC機(jī)WINDOWS系統(tǒng)、MDK KEIL軟件、ISP軟件、串口調(diào)試助手五.實(shí)驗(yàn)步驟1 .參考教材獨(dú)立看門狗部分,編寫?yīng)毩⒖撮T狗驅(qū)動(dòng)程序。建立和配置工程2 .編寫代碼3 .使用ISP下載到實(shí)驗(yàn)板源代碼:在配置看門狗后,看到LEDO不停的閃爍,如果WK_UP按鍵按下,就喂狗,只 要WK_UP不停的按,看門狗就一直不會(huì)產(chǎn)生復(fù)位,蝕持LEDO的常亮,一旦超 過看仃狗定溢出時(shí)間(Tout)還沒按,那么將會(huì)導(dǎo)致程序重啟,這將導(dǎo)致
14、LEDO熄滅一次。七.實(shí)驗(yàn)總結(jié)通過本次實(shí)驗(yàn),我掌握了啟動(dòng)獨(dú)立看門狗的步驟:1)向 IWDG_KR 寫入 0X5555。2)向 IWDGJCR 寫入 0XAAAA。3)向 IWDGJKR 寫入 0XCCCC。通過上面3個(gè)步驟,啟動(dòng)STM32的看門狗,從而使能看門狗,在程序里面就 必須間隔一定時(shí)間喂狗,否則將導(dǎo)致程序復(fù)位。利用這一點(diǎn),本章通過一個(gè) LED燈來指示程序是否 重啟,來驗(yàn)證STM32的獨(dú)立看門狗。在配置看門狗 后,LEDO將常亮,如果WK_UP按 鍵按下,就喂狗,只要WK_UP不停的按, 看門狗就一直不會(huì)產(chǎn)生復(fù)位,保持LED 0的常亮,一旦超過看門狗溢出時(shí)間(Tout)還沒按,那么將會(huì)導(dǎo)
15、致程序重啟,這將導(dǎo)致LED 0熄滅一次。4.記錄實(shí)驗(yàn)過程,撰寫實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)七定時(shí)器中斷實(shí)驗(yàn)實(shí)驗(yàn)簡介STM32的定時(shí)器是一個(gè)通過可編程預(yù)分頻器(PSC)驅(qū)動(dòng)的16位自動(dòng)裝載計(jì) 數(shù)器(CNT)構(gòu)成。STM32的通用定時(shí)器可以被用于:測量輸入信號(hào)的脈沖長 度(輸入捕獲)或者產(chǎn)生輸出波形(輸出比較和PWM)等。使用定時(shí)器預(yù) 分頻器和RCC時(shí)鐘控制器預(yù)分頻器,脈沖長 度和波形周期可以在幾微秒到幾 毫秒間調(diào)整。STM32的每個(gè)通用定時(shí)器都是完全獨(dú)立的,沒有互相共享的任 何資源。熟練掌握定時(shí)器中斷,學(xué)會(huì)對定時(shí)器中斷的編程操作。三.實(shí)驗(yàn)內(nèi)容使用定時(shí)器產(chǎn)生中斷,然后在中斷服務(wù)函數(shù)里面翻轉(zhuǎn)LED1上的電平,來指示
16、 定時(shí)器中斷的產(chǎn)生,修改中斷時(shí)間。四.實(shí)驗(yàn)設(shè)備硬件部分:PC計(jì)算機(jī)(宿主機(jī))、亮點(diǎn)STM32實(shí)驗(yàn)板、JLINKo軟件部分:PC機(jī)WINDOWS系統(tǒng)、MDK KEIL軟件、ISP軟件、串口調(diào)試助手。五.實(shí)驗(yàn)步驟1 .參考教材定時(shí)器中斷部分,編寫定時(shí)器中斷的驅(qū)動(dòng)程序。2 , 編寫主程序3:編譯代碼,使用JLINK或ISP下載到實(shí)驗(yàn)板源代碼:七.實(shí)驗(yàn)總結(jié)通過本次實(shí)驗(yàn),認(rèn)識(shí)到時(shí)間中斷來控制LED燈的閃爍,同時(shí)也可以將時(shí)間中 斷應(yīng)用到控制其他的程序塊。以TIME3為例產(chǎn)生中斷的步驟為1) TIM3時(shí)鐘使能。2)設(shè)置 TIM3_ARR 和 TIM3_PSC 的值。3)設(shè)置TIM3_DIER允許更新中斷。4
17、)允許TIM3工作。5) TIM3中斷分組設(shè)置。6)編寫中斷服務(wù)函數(shù)。在中斷產(chǎn)生后,通過狀態(tài)寄存器的值來判斷此次產(chǎn)生的中斷屬于什么類型。 然后執(zhí)行相關(guān)的操作,我們這里使用的是更新(溢出)中斷,所以在狀態(tài)寄存 器SR的最低位。在處理完中斷之后應(yīng)該向TIM3_SR的最低位寫0,來清除該中斷標(biāo)志。實(shí)驗(yàn)十三ADC實(shí)驗(yàn).實(shí)驗(yàn)簡介通過DAC將STM32系統(tǒng)的數(shù)字量轉(zhuǎn)換為模擬量。使用ADC將模擬量轉(zhuǎn)換為數(shù)字量二.實(shí)驗(yàn)?zāi)康恼莆誅AC和ADC編程。三.實(shí)驗(yàn)內(nèi)容 編寫代碼實(shí)現(xiàn)簡單的DAC單次發(fā)送編寫代碼實(shí)現(xiàn)ADC采集DAC發(fā)送的數(shù)據(jù),并發(fā)送到串口四.實(shí)驗(yàn)設(shè)備硬件部分:PC計(jì)算機(jī)(宿主機(jī))、亮點(diǎn)STM32實(shí)驗(yàn)板、J
18、LINKo軟件部分:PC機(jī)WINDOWS系統(tǒng)、MDK KEIL軟件、ISP軟件、串口調(diào)試助手五.實(shí)驗(yàn)步驟1編寫主程序2編譯代碼,使用JLINK或ISP下載到實(shí)驗(yàn)板,使用串口調(diào)試助手觀察數(shù)據(jù)3記錄實(shí)驗(yàn)過程,撰寫實(shí)驗(yàn)報(bào)告六.實(shí)驗(yàn)結(jié)果及測試源代碼:審口: 1MB勺海I建收00 ; 依驗(yàn)任?刪e3 邀據(jù)圖g二七.實(shí)驗(yàn)總結(jié)本節(jié)將利用STM32的ADC1通道0來采樣外部電壓值,并在串口調(diào)試助手中 顯示出來。步驟如下:1)開啟PA 口時(shí)鐘,設(shè)置PAO為模擬輸入。2)使能ADC1時(shí)鐘,并設(shè)置分頻因子。3)設(shè)置ADC1的工作模式。4)設(shè)置ADC1規(guī)則序列的相關(guān)信息。5)開啟AD轉(zhuǎn)換器,并校準(zhǔn)。6)讀取ADC值。
19、在上面的校準(zhǔn)完成之后,ADC就算準(zhǔn)備好了。接下來我們要做的就是設(shè)置規(guī) 則序列0里 面的通道,然后啟動(dòng)ADC轉(zhuǎn)換。在轉(zhuǎn)換結(jié)束后,讀取ADC1_DR 里面的值。通過以上幾個(gè)步驟的設(shè)置,可以正常的使用STM32的ADC1條執(zhí) 行AD轉(zhuǎn)換操作。通過本次實(shí)驗(yàn)的學(xué)習(xí),我們了解了 STM32 ADC的使用,但 這僅僅是STM32強(qiáng)大的ADC功能的一小點(diǎn)應(yīng)用。STM32的ADC在很多地方 都可以用到,其ADC的DMA功能是很不錯(cuò)的,實(shí)驗(yàn)十五DMA實(shí)驗(yàn)一.實(shí)驗(yàn)簡介直接存儲(chǔ)器存?。―MA)用來提供在外設(shè)和存儲(chǔ)器之間或者存儲(chǔ)器和存儲(chǔ)器之 間的高速數(shù)據(jù) 傳輸。無須CPU干預(yù),數(shù)據(jù)可以通過DMA快速地移動(dòng),這就 節(jié)省了
20、 CPU的資源來做其他 操作。.實(shí)驗(yàn)?zāi)康氖炀氄莆誅MA編程,學(xué)會(huì)對EPC02的讀寫操作,學(xué)習(xí)雙緩沖兵乓操作,理解 互斥資源提高編程能力。三.實(shí)驗(yàn)內(nèi)容利用外部按鍵KEYO來控制DMA的傳送,每按一次KEYO, DMA就傳送一次數(shù) 據(jù) 到USART1,然后在串口調(diào)試助手觀察進(jìn)度等信息。LEDO還是用來做為程 序運(yùn)行的指示燈 這里我們使用到的硬件資源如下:1)按q KEYO。2)指示燈LEDOo3)使用串口調(diào)試助手觀察數(shù)據(jù)四.實(shí)驗(yàn)設(shè)備硬件部分:PC計(jì)算機(jī)(宿主機(jī))、亮點(diǎn)STM32實(shí)驗(yàn)板、JLINKo軟件部 分:PC機(jī)WINDOWS系統(tǒng)、MDK KEIL軟件、ISP軟件、網(wǎng)絡(luò)調(diào)試助手五.實(shí)驗(yàn)步驟1編寫
21、主程序2編譯代碼,使用JLINK或ISP下載到實(shí)驗(yàn)板,使用串口調(diào)試助手觀察數(shù)據(jù)3記錄實(shí)驗(yàn)過程,撰寫實(shí)驗(yàn)報(bào)告六.實(shí)驗(yàn)結(jié)果及測試源代碼:PXintf (、nPress KEYO To Start ! nn) ; j=sizeof (TEXTeTOeSENE): for (i=0; i<5200; i+4)-充 ASCTH 字符集數(shù)據(jù)if (t>=j) / J加入換行符if (mk)SenCISUff i=8x0a; t=0; elseSenCiBUff :i二mask44-;else復(fù)刮 TEXr_: TCLSEND 語句mask=0;SendBUffi =TEXTeTO_SENE/z
22、J; t+%1-0;While(l) (t=KEY_Scan()Jif (t=l>/ / KEYO% <Printf (rtXnScarc TranSinllt 、nr');Printf (r, n % nrf); 顯示百分號(hào)Printf (n n nDMA DATA A nrf);USART1->CR3=1«7 ;吏能串 H _£的 DMA 發(fā)送MYDMA Enable (DMAI Channel4) / / WIJ A DMA % % !等待DMA傳靛完成7此時(shí)我們來他另外一些事,點(diǎn)燈實(shí)際應(yīng)用中,傳輸數(shù)挹期間, 可以執(zhí)行另外的任務(wù)While (
23、2)If (DMA1->ISR& (工工3) 尊待通:物 專1?完戎< _ DMA1->IFCR I T J13;渣琢通道4依注羌戍標(biāo)志break; _Pro二DMAI_ChanneI 余多少個(gè)裁左 PrOT-PrO/52OO;/ 獨(dú),B 分 %PjlOO- 擴(kuò)大 1。倍pS incf ("f nr, / pxG);)PrinCX :rtXnTxansiniit Finiahed ! nrf);>1+;delay_ins (Io);if (120>LEDO二! LED07 / /標(biāo)系統(tǒng)正在迄行i二Q;伴隨LEDO的不停閃爍,提示程序在運(yùn)行。我們打
24、開串口調(diào)試助手,然后按KEYO,可以E咨隹00二聿口核驗(yàn)d:際元 ,境據(jù)淖三I停止付3保守另行為發(fā)送x;oI實(shí)助I實(shí)迨七.實(shí)驗(yàn)總結(jié)本節(jié)利用STM32的DMA來實(shí)現(xiàn)串口數(shù)據(jù)傳送,DMA通道的配置需要:1)設(shè)置外設(shè)地址。2)設(shè)置存儲(chǔ)器地址。3)設(shè)置傳輸數(shù)據(jù)量。4)設(shè)置通道4的配置信息。5)使能DMA1通道4,啟動(dòng)傳輸。通過以上5步設(shè)置,我們就可以啟動(dòng)一次USART1的DMA傳輸了。DMA控制器對DMA請求判別優(yōu)先級(jí)及屏蔽,向總線裁決邏輯提出總線請求。當(dāng)CPU執(zhí)行 完當(dāng)前總線周期即可釋放總線控制權(quán)。此時(shí),總線裁決邏輯輸出 總線應(yīng)答,表示DMA已經(jīng)響應(yīng),通過DMA控制器通知I/O接口開始DMA傳 輸。
25、DMA控制器獲得總線控制權(quán)后,CPU即刻掛起或只執(zhí)行內(nèi)部操作,由DMA控 制器輸出讀 寫命令,直接控制RAM與I/O接口進(jìn)行DMA傳輸。在DMA控制器的控制下,在存儲(chǔ)器和外部設(shè)備之間直接進(jìn)行數(shù)據(jù)傳送,在傳 送過中不需 要中央處理器的參與。開始時(shí)需提供要傳送的數(shù)據(jù)的起始位置和 數(shù)據(jù)長度。當(dāng)完成規(guī)定的成批數(shù)據(jù)傳送后,WA控制器即釋放總線控制權(quán), 并向I/O接口發(fā)出結(jié)束信號(hào)。當(dāng)I/O接口收到結(jié)束信號(hào)后,一方面停 止 I/O設(shè)備的工作,另一方面向CPU提出中斷 請求,使CPU從不介入的狀態(tài)解最后,帶著本次操作脫,并執(zhí)行一段檢查本次DMA傳輸操作正確性的代碼。結(jié)果及狀態(tài)繼續(xù)執(zhí)行原來的程序。由此可見,DM
26、A傳輸方式無需CPU直接控制傳輸,也沒有中斷處理方式那樣 保留現(xiàn)場和 恢復(fù)現(xiàn)場的過程,通過硬件為RAM與I/O設(shè)備開辟一條直接傳送 數(shù)據(jù)的通路,使CPU的效率大為提高。實(shí)驗(yàn)十六12c實(shí)驗(yàn)一.實(shí)驗(yàn)簡介編程實(shí)現(xiàn)對使用C接口的EPC02芯片進(jìn)行寫和讀操作。二.實(shí)驗(yàn)?zāi)康氖炀氄莆誄編程,學(xué)會(huì)對EPC02的讀寫操作。三.實(shí)驗(yàn)內(nèi)容編寫C驅(qū)動(dòng)程序,使用驅(qū)動(dòng)程序初始化EPC02,判斷設(shè)備正確性。寫256個(gè)Ox5A到EPC02,讀出并發(fā)送給串口,通過串口調(diào)試助手判別是0x5A 否讀到的都是四.實(shí)驗(yàn)設(shè)備硬件部分:PC計(jì)算機(jī)(宿主機(jī))、亮點(diǎn)STM32實(shí)驗(yàn)板、JLINKO軟件部分:PC機(jī)WINDOWS系統(tǒng)、MDK KE
27、IL軟件、ISP軟件、串口調(diào)試助手。五.實(shí)驗(yàn)步驟1參考教材12c部分,編寫12c驅(qū)動(dòng)程序。2編寫主程序3編譯代碼,使用JLINK或ISP下載到實(shí)驗(yàn)板 4記錄實(shí)驗(yàn)過程,撰寫實(shí)驗(yàn)報(bào)告六.實(shí)驗(yàn)結(jié)果及測試伴隨LEDO的不停閃爍,提示程序在運(yùn)行。我們先按下KEYO,可以看到如下 所示的內(nèi)容,證明數(shù)據(jù)已經(jīng)被寫入到接著我們按KEY2,可以看我們剛剛寫入的數(shù)據(jù)被顯示出來了,源代碼:七.實(shí)驗(yàn)總結(jié)nc是由數(shù)據(jù)線SDA和時(shí)鐘SCL構(gòu)成的串行總線,可發(fā)送和接收數(shù)據(jù)。在CPU 與被控IC之間、IC與IC之間進(jìn)行雙向傳送,高速nc總線一般可達(dá) 400kbps 以上。nc總線在傳送數(shù)據(jù)過程中共有三種類型信號(hào),它們分別是:開
28、始信號(hào)、結(jié)束 信號(hào)和應(yīng)答 信號(hào)。這些信號(hào)中,起始信號(hào)是必需的,結(jié)束信號(hào)和應(yīng)答信號(hào), 都可以不要。程序在開機(jī)的時(shí)候會(huì)檢測24C02是否存在,如果不存在則會(huì)在 TFTLCD模 塊上顯示錯(cuò)誤 信息,同時(shí)LED0慢閃。大家可以通過跳線帽把PC11 和PC12短接就可以看到報(bào)錯(cuò)了。通過本次實(shí)驗(yàn),我掌握了如何使用HC寫 入與讀出數(shù)據(jù),學(xué)習(xí)了編寫C驅(qū)動(dòng)程序,使用驅(qū)動(dòng)程序初始化EPC02,判 斷設(shè)備正確性,以及如何在助手上顯示。源代碼: 伴隨LEDO的不停閃爍,提示程序在運(yùn)行。我們先按下KEYO,可以看到如圖 所示的內(nèi)容,證明數(shù)據(jù)已經(jīng)被寫入到W25X16 了。硼正點(diǎn)原子制作VL5,梅至鼠JU 引 InonF
29、73停止位 美用田口格式顯示保存I 筋為I,清空發(fā)法區(qū)I 發(fā),區(qū)r AUTO r DEC II 幄送岫叵就'一,P RX:0 一廠7X0 一 用數(shù)器K零|打開文件| 三三仔|聯(lián)系我 次件升然 正點(diǎn)原子制作W5 關(guān)閉程序|接著我們按KEY2,可以看我們剛剛寫入的數(shù)據(jù)被顯示出來了,如下圖所示:Suit Write W25X1& . . WZKIG Wg nislwd! Suit ReadW25i<16. Th? EiatARpaded Ir Mn STM32 SPI TEST停止位關(guān).田口 I青空接收區(qū)I 接區(qū);停止昆示P自動(dòng)??誹格式是示保存 另存為I青空發(fā)送區(qū)I 轆住,r
30、 AUTO r DECr 將法周期同 o ”,icr Rxo ixo計(jì)數(shù)器.零|打開文.|工工,.|聯(lián)系我 軟件升級(jí) 正點(diǎn)原子制作vis 叁琬序|七.實(shí)驗(yàn)總結(jié)SPI接口主要應(yīng)用在EEPROM, FLASH,實(shí)時(shí)時(shí)鐘,AD轉(zhuǎn)換器,還有數(shù)字信號(hào) 處理器和 數(shù)字信號(hào)解碼器之間。SP, I是一種高速的,全雙工,同步的通信 總線,并且在芯片的管腳 上只占用四根線,節(jié)約了芯片的管腳,同時(shí)為PCB 的布局上節(jié)省空間,提供方便,正是出于這種簡單易用的特性,現(xiàn)在越來越 多的芯片集成了這種通信協(xié)議,STM32也有SPI接口。SPI的設(shè)置步驟:1)配置相關(guān)引腳的復(fù)用功能,使能SPI時(shí)鐘。2)設(shè)置SPI工作模式。3)
31、使能SPIo程序在開機(jī)的時(shí)候會(huì)檢測W25X16是否存在,如果不存在則會(huì)在TFTLCD模 塊上顯示錯(cuò)誤 信息,同時(shí)LED0慢閃。大家可以通過跳線帽把PA5和PA6短 接就可以看到報(bào)錯(cuò)了。通過本實(shí)驗(yàn),我掌握了編寫SPI程序?qū)懭牒妥x取 FLASH的方法,掌握了對學(xué)會(huì)對的W25Q64讀寫操作。對STM32開發(fā)板有了進(jìn) 一步的了解。實(shí)驗(yàn)二H一紅外遙控實(shí)驗(yàn)一.實(shí)驗(yàn)簡介編程實(shí)現(xiàn)通過在ALIENTEK MiniSTM32開發(fā)板上實(shí)現(xiàn)紅外遙控器的控制二.實(shí)驗(yàn)?zāi)康恼莆站幊虒?shí)現(xiàn)紅外遙控控制開發(fā)板的方法。三.實(shí)驗(yàn)內(nèi)容1 .編寫紅外遙控驅(qū)動(dòng)程序2 .編寫紅外遙控程序代碼3 .使用紅外遙控控制開發(fā)板四.實(shí)驗(yàn)設(shè)備硬件部分:PC計(jì)算機(jī)(宿主機(jī))、亮點(diǎn)STM32實(shí)驗(yàn)板、JLINKo軟件部分:PC 機(jī) WINDOWS 系統(tǒng)、MDK KEIL 軟件、ISP 軟件。五
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中職醫(yī)療器械維護(hù)與管理(醫(yī)療器械法規(guī)基礎(chǔ))試題及答案
- 2026年畜牧養(yǎng)殖綜合(多品種飼養(yǎng))試題及答案
- 2025年大學(xué)大四(財(cái)務(wù)管理)營運(yùn)資金優(yōu)化綜合測試試題及答案
- 救火安全教育課件
- 貴州省安順市開發(fā)區(qū)2025年八年級(jí)上學(xué)期期末考試物理試題附答案
- 養(yǎng)老院老人生活照顧人員職業(yè)發(fā)展規(guī)劃制度
- 養(yǎng)老院老人健康飲食營養(yǎng)師管理制度
- 2026年嵌入式開發(fā)工程師校招題庫含答案
- 2026年粉末冶金工技能等級(jí)考核要點(diǎn)試題含答案
- 2026年快件處理員職業(yè)技能考點(diǎn)突破練習(xí)題集含答案
- 研學(xué)旅行指導(dǎo)手冊
- 大學(xué)生社會(huì)支持評(píng)定量表附有答案
- 植入式靜脈給藥裝置(輸液港)-中華護(hù)理學(xué)會(huì)團(tuán)體標(biāo)準(zhǔn)2023
- GB/T 2988-2023高鋁磚
- 東風(fēng)7電路圖解析
- 數(shù)字填圖系統(tǒng)新版(RgMap2.0)操作手冊
- FZ/T 73009-2021山羊絨針織品
- JJF 1069-2012 法定計(jì)量檢定機(jī)構(gòu)考核規(guī)范(培訓(xùn)講稿)
- DFMEA編制作業(yè)指導(dǎo)書新版
- DB35∕T 1844-2019 高速公路邊坡工程監(jiān)測技術(shù)規(guī)程
- 城市管理綜合執(zhí)法局城管執(zhí)法與執(zhí)法程序PPT模板
評(píng)論
0/150
提交評(píng)論