欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      ARM與嵌入式實(shí)驗(yàn)報(bào)告(5篇)

      時(shí)間:2019-05-12 00:33:26下載本文作者:會(huì)員上傳
      簡(jiǎn)介:寫(xiě)寫(xiě)幫文庫(kù)小編為你整理了多篇相關(guān)的《ARM與嵌入式實(shí)驗(yàn)報(bào)告》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫(xiě)寫(xiě)幫文庫(kù)還可以找到更多《ARM與嵌入式實(shí)驗(yàn)報(bào)告》。

      第一篇:ARM與嵌入式實(shí)驗(yàn)報(bào)告

      ARM與嵌入式技術(shù)

      實(shí)驗(yàn)報(bào)告

      專(zhuān)業(yè)班級(jí):通信工程

      姓名:**** 學(xué)號(hào):******

      實(shí)驗(yàn)日期:2012年6月7日 指導(dǎo)老師:*****

      一、實(shí)驗(yàn)?zāi)康?/p>

      1.學(xué)習(xí)使用Embest IDE開(kāi)發(fā)環(huán)境及ARM 軟件模擬器;

      2.掌握簡(jiǎn)單ARM 匯編指令,進(jìn)一步加強(qiáng)對(duì)嵌入式的熟悉和了解。

      二、實(shí)驗(yàn)設(shè)備

      硬件:PC 機(jī)

      軟件:Embest IDE 開(kāi)發(fā)環(huán)境

      三、實(shí)驗(yàn)內(nèi)容

      例3:實(shí)現(xiàn)64位加法運(yùn)算,要求【R1:R0】+【R3:R2】,結(jié)果放回【R1:R0】中; 例2:編寫(xiě)程序?qū)2的高8位傳送到R3的低8位(不考慮R3的其它位); 例7:編寫(xiě)一段程序計(jì)算10!;

      例8:串拷貝(R1指向源數(shù)據(jù)串的首地址,R0指向目的數(shù)據(jù)串的首地址)。

      四、實(shí)驗(yàn)步驟

      1)新建工程:

      運(yùn)行Embest IDE 集成開(kāi)發(fā)環(huán)境,選擇菜單項(xiàng)File → New Workspace,如圖一,系統(tǒng)彈出一個(gè)對(duì)話(huà)框,鍵入文件名“沈”,如圖二,點(diǎn)擊OK 按鈕。將創(chuàng)建一個(gè)新工程,并同時(shí)創(chuàng)建一個(gè)與工程名相同的工作區(qū)。此時(shí)在工作區(qū)窗口將打開(kāi)該工作區(qū)和工程.。

      2)建立源文件:

      點(diǎn)擊菜單項(xiàng)File → New,如圖三,系統(tǒng)彈出一個(gè)新的文本編輯窗,輸入源文件代碼。編輯完后,保存文件“沈.s”后綴,如圖四。

      3)添加源文件:

      選擇菜單項(xiàng)Project → Add To Project → Files,在工程目錄下選擇剛才建立的源文件.s后綴文件,如圖五,圖六。

      4)基本配置:

      選擇菜單項(xiàng)Project → Settings,彈出工程設(shè)置對(duì)話(huà)框。在工程設(shè)置對(duì)話(huà)框中。① 選擇Processor 設(shè)置對(duì)話(huà)框,按照?qǐng)D七所示,進(jìn)行配置:

      圖七

      ② 選擇Remote設(shè)置對(duì)話(huà)框,按照下圖八所示,進(jìn)行配置:

      圖八 ③ 選擇最右邊一個(gè)進(jìn)行編譯,顯示如圖九,則編譯成功。

      圖九

      ④ 選擇Project → Settings → Debug設(shè)置對(duì)話(huà)框,按照?qǐng)D十所示,進(jìn)行配置:

      圖十 ⑤

      選擇

      5)選擇菜單項(xiàng)Debug →Remote Connect 進(jìn)行連接軟件仿真器,將存儲(chǔ)器地址改為0x1000,如圖十一,執(zhí)行Debug →Download 命令下載程序,并打開(kāi)寄存器窗口。打開(kāi)memory 窗口,按F10進(jìn)行單步跟蹤,觀察寄存器的數(shù)據(jù)變化并分析。最右邊一個(gè)進(jìn)行編譯,顯示如圖九,則編譯成功。

      圖十一

      五、各實(shí)驗(yàn)的參考程序及運(yùn)行結(jié)果

      實(shí)驗(yàn)一:(例3)實(shí)現(xiàn)64位加法運(yùn)算,要求【R1:R0】+【R3:R2】,結(jié)果放回【R1:R0】中; 1.程序代碼如下:

      .global _start

      .text _start:

      mov R0,#11

      /*R0=11*/ mov R1,#22

      /*R1=22*/ mov R2,#33

      /*R2=33*/ mov R3,#44

      /*R3=44*/ ADDS R0,R0,R2

      /*R0等于低32位相加,并影響標(biāo)志位*/

      ADC R1,R1,R3

      /*R1等于高32位相加,并加上低位進(jìn)位*/ stop:

      b stop.end

      2.分析調(diào)試:

      ①download下載:

      ② 讀入數(shù)據(jù):

      ③ r0+r2→r0(低32位):

      ④ r1+r3→r1(帶進(jìn)位的加法):

      實(shí)驗(yàn)二:(例2)編寫(xiě)程序?qū)2高8位傳送到R3的低8位(不考慮R3的其它位);

      1.程序代碼如下:

      .global _start _start: ldr r2,=0x23453401 ldr r3,=0xabcd1200 and r2,r2,#0xff000000 /*保留R2的高8位,屏蔽低24位*/ and r3,r3,#0xffffff00 /*保留R3的高24位,屏蔽低8位*/

      orr r3,r3,r2,lsr #24

      /*將R2的高8位傳送到R3的低8位*/ stop:

      b stop.end

      2.分析調(diào)試:

      ①download下載:

      ②保留r2的高8位,屏蔽低24位:

      ③保留r3的高24位,屏蔽低8位:

      ④將R2的高8位傳送到R3的低8位:

      實(shí)驗(yàn)三:(例7)編寫(xiě)一段程序計(jì)算10!

      1.程序代碼如下:

      .global _start.text.equ num,10 _start: mov r0,#num mov r1,r0 s1: subs r1,r1,#1

      /*把r1-1放入r1*/ mul r0,r1,r0

      /*r0*r1放入r0*/ cmp r1,#1

      /*比較R1與1的大小*/ beq stop

      bne s1 stop: b stop.end

      2.分析調(diào)試:

      ① download下載:

      ② 第一次執(zhí)行S1,r1=10-1=9,10*9=90,換成16進(jìn)制是5a。

      ③ 第二次執(zhí)行S1,r1=9-1=8,10*9*8=720,換成16進(jìn)制是2d0。

      ④ 依次執(zhí)行S1,到r1=1,停止,10*9*8??*1=3628800,換成16進(jìn)制是375f00。

      實(shí)驗(yàn)四:(例8)串拷貝(R1指向源數(shù)據(jù)串首地址,R0指向目的數(shù)據(jù)串的首地址)。1.程序代碼如下:.global _start.text.EQU NUM,8 _start:

      LDR R0,=srcstr

      /*指向源數(shù)據(jù)串R0*/

      LDR R1,=dststr

      /*指向目標(biāo)數(shù)據(jù)串R1*/

      mov R3,#NUM

      /*R3=8*/

      mov LR,PC

      /*返回*/

      B strcopy

      /*調(diào)用串拷貝子程序*/ stop: b stop

      strcopy:

      LDRB R2,[R0],#1

      /*裝載字節(jié)同時(shí)更新地址*/

      STRB R2,[R1],#1

      /*存儲(chǔ)字節(jié)同時(shí)更新地址*/

      SUBS R3,R3,#1

      CMP R3,#0

      /*判斷是否結(jié)束*/

      BNE strcopy

      /*不是,則繼續(xù)*/

      MOV PC,LR

      /*返回*/.data

      srcstr:.long 1,2,3,4,5,6,7,0

      /*定義源數(shù)據(jù)串*/

      dststr:.long 5,3,2,1,4,6,8,0

      /*定義目的字符串*/

      2.分析調(diào)試:

      ①單步跟蹤后的結(jié)果及存儲(chǔ)器的結(jié)果顯示:

      ②寄存器的結(jié)果顯示:

      六、實(shí)驗(yàn)心得

      今天在實(shí)驗(yàn)室里,學(xué)習(xí)使用Embest IDE開(kāi)發(fā)環(huán)境及ARM 軟件模擬器,掌握簡(jiǎn)單ARM 匯編指令,進(jìn)一步加強(qiáng)了對(duì)嵌入式的熟悉和了解。鄭老師在兢兢業(yè)業(yè)的向我們傳授實(shí)踐知識(shí)的同時(shí)也向我們提問(wèn)相關(guān)理論問(wèn)題,讓我們?cè)趯W(xué)習(xí)的過(guò)程加深對(duì)實(shí)踐和理論兩者之間的聯(lián)系,知道每一個(gè)步驟的發(fā)生的原因及產(chǎn)生相應(yīng)的結(jié)果,即對(duì)實(shí)驗(yàn)的來(lái)龍去脈有了更清楚的認(rèn)識(shí),為今后的學(xué)習(xí)打下了一定的基礎(chǔ)。相信在接下來(lái)的實(shí)驗(yàn)中,我們會(huì)在鄭老師的引導(dǎo)下,做起實(shí)驗(yàn)來(lái)更能得心應(yīng)手,輕車(chē)熟駕!

      第二篇:嵌入式系統(tǒng)ARM實(shí)驗(yàn)報(bào)告

      南京郵電大學(xué)通信與信息工程學(xué)院

      實(shí)驗(yàn)報(bào)告

      實(shí)驗(yàn)名稱(chēng):實(shí)驗(yàn)一基于ADS開(kāi)發(fā)環(huán)境的設(shè)計(jì)

      實(shí)驗(yàn)二嵌入式Linux交叉開(kāi)發(fā)環(huán)境的建立 實(shí)驗(yàn)三嵌入式Linux環(huán)境下的程序設(shè)計(jì)

      課程名稱(chēng)嵌入式系統(tǒng)B

      班級(jí)學(xué)號(hào)B13010711 姓名馬俊民

      開(kāi)課時(shí)間 2015/2016學(xué)年第1學(xué)期

      實(shí)驗(yàn)一基于ADS開(kāi)發(fā)環(huán)境的程序設(shè)計(jì)

      一、實(shí)驗(yàn)?zāi)康?/p>

      1、學(xué)習(xí)ADS開(kāi)發(fā)環(huán)境的使用;

      2、學(xué)習(xí)和掌握ADS環(huán)境下的匯編語(yǔ)言及C語(yǔ)言程序設(shè)計(jì);

      3、學(xué)習(xí)和掌握匯編語(yǔ)言及C語(yǔ)言的混合編程方法。

      二、實(shí)驗(yàn)內(nèi)容

      1、編寫(xiě)和調(diào)試匯編語(yǔ)言程序;

      2、編寫(xiě)和調(diào)試C語(yǔ)言程序;

      3、編寫(xiě)和調(diào)試匯編語(yǔ)言及C語(yǔ)言的混合程序;

      4、編寫(xiě)程序測(cè)試多寄存器傳送指令的用法。

      三、實(shí)驗(yàn)原理

      ADS全稱(chēng)為ARM Developer Suite,是ARM公司推出的新一代ARM集成開(kāi)發(fā)工具。現(xiàn)在常用的ADS版本是ADS1.2,它取代了早期的ADS1.1和ADS1.0。

      ADS用于無(wú)操作系統(tǒng)的ARM系統(tǒng)開(kāi)發(fā),是對(duì)裸機(jī)(可理解成一個(gè)高級(jí)單片機(jī))的開(kāi)發(fā)。ADS具有極佳的測(cè)試環(huán)境和良好的偵錯(cuò)功能,它可使硬件開(kāi)發(fā)工作者更深入地從底層去理解ARM處理器的工作原理和操作方法,為日后自行設(shè)計(jì)打基礎(chǔ),為BootLoader的編寫(xiě)和調(diào)試打基礎(chǔ)。

      1.ADS軟件的組成

      ADS由命令行開(kāi)發(fā)工具、ARM運(yùn)行時(shí)庫(kù)、GUI開(kāi)發(fā)環(huán)境(CodeWarrior和AXD)、實(shí)用程序、支持軟件等組成。

      2.GUI開(kāi)發(fā)環(huán)境

      ADS GUI開(kāi)發(fā)環(huán)境包含CodeWarrior和AXD兩種,其中Code Warrior是集成開(kāi)發(fā)工具,而AXD是調(diào)試工具。

      使用匯編語(yǔ)言進(jìn)行編程簡(jiǎn)單、方便,適用于初始化硬件代碼、啟動(dòng)代碼等。匯編語(yǔ)言具有一些相同的基本特征:

      1.一條指令一行。

      2.使用標(biāo)號(hào)(label)給內(nèi)存單元提供名稱(chēng),從第一列開(kāi)始書(shū)寫(xiě)。3.指令必須從第二列或能區(qū)分標(biāo)號(hào)的地方開(kāi)始書(shū)寫(xiě)。4.注釋必須跟在指定的注釋字符后面,一直書(shū)寫(xiě)到行尾。

      在ARM匯編程序中,每個(gè)段必須以AREA作為段的開(kāi)始,以碰到下一個(gè)AREA作為該段的結(jié)束,段名必須唯一。程序的開(kāi)始和結(jié)束需以ENTRY和END來(lái)標(biāo)識(shí)。嵌入式C語(yǔ)言設(shè)計(jì)是利用基本的C語(yǔ)言知識(shí),面向嵌入式工程實(shí)際應(yīng)用進(jìn)行程序設(shè)計(jì)。為了使單獨(dú)編譯的C語(yǔ)言程序和匯編程序之間能夠相互調(diào)用,必須為子程序之間的調(diào)用規(guī)定一定的規(guī)則。ATPCS就是ARM程序和Thumb程序中子程序調(diào)用的基本規(guī)則。

      四、實(shí)驗(yàn)過(guò)程與關(guān)鍵代碼分析

      1.創(chuàng)建項(xiàng)目工程

      在File菜單中選擇New命令,打開(kāi)一個(gè)新建工程對(duì)話(huà)框。在Project選項(xiàng)卡下,選擇ARM Executable Image, 然后在Project name文本框里輸入項(xiàng)目名稱(chēng),點(diǎn)擊確定。彈出工程窗口。

      選擇File菜單中的New命令,選擇File標(biāo)簽頁(yè),在File name文本框中輸入要?jiǎng)?chuàng)建的文件名。匯編程序以.s結(jié)尾,c程序以.c結(jié)尾。在Location文本框中指定文件的存放位置,選中Add to Project,在Targets中選中DebugRel,單擊確定關(guān)閉窗口。

      2.用匯編語(yǔ)言設(shè)計(jì)程序?qū)崿F(xiàn)10的階乘

      AREA EXAMPLE, CODE, READONLY ENTRY start MOV R0, #10 MOV R1, #1 LOOP MUL R0, R0, R1 SUB R0, R0, 1 CMP R0, #1 BHI LOOP END 在這個(gè)程序中,我們首先對(duì)R0和R1賦值,將R0作為一個(gè)變量,而R1作為一個(gè)存貯階乘值的寄存器。在每進(jìn)行一次乘法之后,將R0減1。同時(shí)在做完減法后進(jìn)行判斷,如果此時(shí)R0大于1,則返回繼續(xù)乘法,否則結(jié)束程序,輸出結(jié)果。

      3.用調(diào)用子程序的方法實(shí)現(xiàn)1!+2!+3!+?+10!,代碼如下: asmp.s

      AREA JC, CODE, READONLY

      EXPORT JCP

      ENTRY JCP

      ADD R3, R0, #1

      MOV R2, #1

      MOV R1, #1 LOOP MUL R0, R1, R2

      MOV R1, R0

      ADD R2, R2, #1

      CMP R2, R3

      BNE LOOP

      NOP

      NOP

      MOV PC, LR

      END

      PROGC.c #include Extern int JCP(int N)

      int main(){ int res=0;int m=10;int i;for(i=1;i<=m;i++)

      res=res+JCP(i);printf(“The result =%dn”,res);return 0;} 在這個(gè)程序中,主程序由c語(yǔ)言完成作求和,子程序由匯編語(yǔ)言寫(xiě)成作階乘。

      5.實(shí)現(xiàn)字符串的逆序復(fù)制TEXT1=“HELLO”=>TEXT2=“OLLEH”

      AREA invstring, CODE, READONLY start

      ADR R1,TEXT1

      ADR R2,TEXT2

      MOV R3, #0 LOOP

      LDRB R0,[R1], #1

      ADD R3,R3,#1

      CMP R0,#0

      BNE LOOP

      SUB R1,R1,#2

      LOOP1

      LDRB R0,[R1], #-1

      STRB R0,[R2], #1

      SUB R3,R3, #1

      CMP R3,#1

      BNE LOOP1

      MOV R5,#&55

      TEXT1

      TEXT2 NOP =“HELLO”,0 ALIGN =“OELLH” END

      五、實(shí)驗(yàn)小結(jié)

      在這次實(shí)驗(yàn)中,學(xué)會(huì)了如何使用匯編程序進(jìn)行編程。對(duì)匯編程序編程一些基本的要求有了一定的了解,學(xué)習(xí)了C語(yǔ)言的語(yǔ)法和在其中調(diào)用匯編程序的方法。學(xué)會(huì)了利用CodeWarrior IDE開(kāi)發(fā)C和ARM匯編代碼。學(xué)會(huì)了在AXD中進(jìn)行代碼調(diào)試的方法和過(guò)程,對(duì)AXD的調(diào)試有初步的了解。,實(shí)驗(yàn)二嵌入式Linux交叉開(kāi)發(fā)環(huán)境的建立

      一、實(shí)驗(yàn)?zāi)康?/p>

      1、掌握嵌入式Linux交叉開(kāi)發(fā)環(huán)境的建立方法

      2、學(xué)習(xí)和掌握Linux常用命令

      3、學(xué)習(xí)和掌握vi編輯器的使用

      二、實(shí)驗(yàn)內(nèi)容

      1、搭建嵌入式Linux交叉開(kāi)發(fā)環(huán)境

      2、熟悉Linux的常用命令

      3、熟悉vi編輯器的常用命令

      三、實(shí)驗(yàn)原理

      Linux系統(tǒng)是UNIX系統(tǒng)的分支,是UNIX的微機(jī)版。Linux具有異常豐富的驅(qū)動(dòng)程序資源,支持各種主流的硬件設(shè)備與技術(shù)。Linux包含了現(xiàn)代的UNIX操作系統(tǒng)的所有功能特性,這些功能包括多任務(wù)、虛擬內(nèi)存、虛擬文件系統(tǒng)、進(jìn)程間通信、對(duì)稱(chēng)所處理器、多用戶(hù)支持等。

      Vi編輯器是所有UNIX和Linux下的標(biāo)準(zhǔn)編輯器。它包含3種工作模式。嵌入式系統(tǒng)是專(zhuān)用的計(jì)算機(jī)系統(tǒng),它對(duì)系統(tǒng)的功能、可靠性、成本、體積、功耗等有嚴(yán)格的要求。大部分嵌入式系統(tǒng)沒(méi)有大容量存儲(chǔ)設(shè)備,一般不能安裝大型開(kāi)發(fā)軟件,系統(tǒng)的開(kāi)發(fā)需要采用交叉開(kāi)發(fā)模式。

      四、實(shí)驗(yàn)過(guò)程與關(guān)鍵代碼分析

      實(shí)驗(yàn)用的是UP-NetARM2410-S試驗(yàn)箱,里面配有三星的芯片S3c2410X。打開(kāi)電腦上VMWare軟件,在Windows系統(tǒng)下啟動(dòng)虛擬機(jī)里的Linux系統(tǒng)。接著需要

      1.宿主機(jī)的環(huán)境搭建

      下載并運(yùn)行VMWare,根據(jù)向?qū)?chuàng)建一臺(tái)新虛擬機(jī)并選擇Linux作為客戶(hù)操作系統(tǒng),再根據(jù)向?qū)О惭bRedHat Linux 9.0。

      2.虛擬機(jī)中啟動(dòng)Linux操作系統(tǒng)

      使用root登陸,用戶(hù)名為root,密碼為123456。之后對(duì)共享文件設(shè)置進(jìn)行調(diào)整:打開(kāi)settings界面,打開(kāi)shared folders功能,同時(shí)將路徑設(shè)置到有課前下載的軟件的目錄下。

      3.開(kāi)發(fā)工具軟件的安裝(1)安裝gcc 打開(kāi)Linux后,打開(kāi)終端窗口,在共享的目錄下找到install.sh并運(yùn)行,命令如下: ls./ install.sh 安裝程序?qū)⒆詣?dòng)建立/arm2410s目錄,并將所有的開(kāi)發(fā)軟件包安裝到/arm2410s 目錄下,同時(shí)自動(dòng)配置編譯環(huán)境,建立合適的符號(hào)鏈接。安裝完成后在目錄/opt/host/armv4l/bin/下應(yīng)該能看到主編譯器。(2)配置PATH路徑

      vi.bash.profile 將里面PATH變量改為PATH=$PATH:$HOME/bin:/opt/host/armv41/bin/;存盤(pán)后執(zhí)行

      source.bash_profile 以后armv4l-unknown-linux-gcc將被自動(dòng)搜索到

      4.宿主機(jī)上的開(kāi)發(fā)環(huán)境配置(1)配置IP地址

      ifconfig eth0 192.168.0.121 命令配置了宿主機(jī)的IP地址。然后打開(kāi)網(wǎng)絡(luò)配置窗口,重新探測(cè)MAC地址。重新激活。(2)關(guān)閉防火墻

      單擊“Red”菜單→“系統(tǒng)設(shè)置”→“安全級(jí)別”→打開(kāi)“安全級(jí)別配置”窗口,選擇“無(wú)防火墻選項(xiàng)。”(3)配置NFS。

      單擊“Red”菜單→“系統(tǒng)設(shè)置”→“服務(wù)器設(shè)置”→“服務(wù)”,在“服務(wù)配置”窗口中勾選nfs,單擊“開(kāi)始”(4)NFS設(shè)置

      單擊“Red”菜單→“系統(tǒng)設(shè)置”→“服務(wù)器設(shè)置”→“NFS服務(wù)器”,打開(kāi)“NFS服務(wù)器配置”窗口,設(shè)置NFS共享。

      然后在NFS服務(wù)器中增加主機(jī)IP地址的鏈接許可和目錄。完成配置。

      5.目標(biāo)機(jī)的信息輸出

      Windows系統(tǒng)下,“開(kāi)始”→“所有程序”→“附件”→“通訊”→“超級(jí)終端”,新建一個(gè)通信終端。區(qū)號(hào)、電話(huà)號(hào)碼隨意輸入。設(shè)置每秒位數(shù)為“115200”,數(shù)據(jù)位為“8”,無(wú)奇偶校驗(yàn),停止位為“1”,無(wú)數(shù)據(jù)流控制。單擊“確定”。

      6.程序的運(yùn)行

      打開(kāi)超級(jí)終端,啟動(dòng)Linux,屏幕顯示:

      [/mnt/yaffs] 在超級(jí)終端上執(zhí)行掛載命令:

      [/mnt] mount –t nfs 192.168.0.121:/arm2410s /mnt/nfs 掛載成功后可執(zhí)行程序。

      五、實(shí)驗(yàn)小結(jié)

      在這次實(shí)驗(yàn)中,學(xué)會(huì)建立Linux交叉開(kāi)發(fā)環(huán)境,學(xué)會(huì)了ls和vi,cd等常用的Linux命令,并掌握了Vi編輯器的使用方法。同時(shí)知道了如何在搭建失敗時(shí)尋找錯(cuò)誤進(jìn)行排錯(cuò)。

      實(shí)驗(yàn)三嵌入式Linux環(huán)境下的程序設(shè)計(jì)

      一、實(shí)驗(yàn)?zāi)康?/p>

      1、掌握嵌入式Linux環(huán)境下的程序設(shè)計(jì)方法

      2、學(xué)會(huì)編寫(xiě)Makefile文件

      二、實(shí)驗(yàn)內(nèi)容

      1、熟悉嵌入式教學(xué)實(shí)驗(yàn)箱的使用

      2、編寫(xiě)C程序和Makefile文件

      3、編譯程序產(chǎn)生可執(zhí)行程序

      4、完成主機(jī)的掛載和程序的執(zhí)行

      三、實(shí)驗(yàn)原理

      在嵌入式Linux環(huán)境下的程序設(shè)計(jì)方法有一下幾個(gè)步驟:

      1.編寫(xiě)源程序

      2.編寫(xiě)Makefile文件 3.編譯程序

      4.運(yùn)行和調(diào)試程序

      5.將生產(chǎn)的可執(zhí)行文件加入文件系統(tǒng)。

      前三個(gè)步驟在宿主機(jī)上完成,后面的步驟在目標(biāo)機(jī)上完成。

      四、實(shí)驗(yàn)過(guò)程與關(guān)鍵代碼分析

      1.建立工作目錄

      mkdir hello cd hello

      2.編寫(xiě)源程序

      用vi編輯器編輯Hello.c文件

      vi Hello.c 在Vi中輸入源程序如下:

      #include main(){

      printf(“hello world n”);}

      3.編寫(xiě)Makefile文件

      vi Makefile 在vi中編輯Makefile文件如下:

      CC= armv4l-unknown-linux-gcc EXEC = hello OBJS = hello.o CFLAGS += LDFLAGS+=-static all: $(EXEC)$(EXEC):(OBJS)$(CC)$(LDFLAGS)–o $@ $(OBJS)clean:

      -rm –f $(EXEC)*.elf *.gdb *.o

      4.編譯程序

      在hello目錄下運(yùn)行“make”來(lái)編譯程序。

      make clean

      make 編譯成功后,生成可執(zhí)行文件Hello.o。

      5.下載調(diào)試

      在宿主機(jī)上啟動(dòng)nfs服務(wù),并將/arms2410s設(shè)置為共享目錄。接下來(lái)啟動(dòng)超級(jí)終端,建立通訊,掛載。

      [/mnt] mount –t nfs 192.168.0.121:/arm2410s /mnt/nfs 掛載成功后,進(jìn)入/mnt/nfs,再進(jìn)入/mnt/nfs/hello,直接運(yùn)行剛剛編譯生成的可執(zhí)行文件Hello.o,查看運(yùn)行結(jié)果

      cd hello./hello 可以看見(jiàn)“Hello world”

      只需要掛載一次便可,只要實(shí)驗(yàn)箱沒(méi)有重啟,就可以一直保持連接。反復(fù)修改、編譯、調(diào)試,直至程序調(diào)試通過(guò)。

      6.可執(zhí)行文件加入文件系統(tǒng)

      程序調(diào)試通過(guò)后,可以把可執(zhí)行文件拖放到usr/bin目錄下,然后使用mkcramfs制作工具生成新的文件系統(tǒng)。當(dāng)系統(tǒng)啟動(dòng)后,就可以在相應(yīng)目錄下執(zhí)行可執(zhí)行程序hello.五、實(shí)驗(yàn)小結(jié) 在這次實(shí)驗(yàn)中,學(xué)會(huì)了在嵌入式Linux環(huán)境下設(shè)計(jì)程序。同時(shí)知道了如何對(duì)目標(biāo)機(jī)進(jìn)行掛載。以及如何在發(fā)現(xiàn)掛載不成功尋找錯(cuò)誤進(jìn)行修改。另外在編譯文件時(shí)需要注意的也都有所了解。

      實(shí)驗(yàn)四多線程程序設(shè)計(jì)

      一、實(shí)驗(yàn)?zāi)康?、2、二、實(shí)驗(yàn)內(nèi)容1、2、3、4、三、實(shí)驗(yàn)原理

      四、實(shí)驗(yàn)過(guò)程與關(guān)鍵代碼分析

      五、實(shí)驗(yàn)小結(jié)

      3+

      第三篇:嵌入式ARM鍵盤(pán)控制LED燈實(shí)驗(yàn)報(bào)告

      實(shí)驗(yàn)六 鍵盤(pán)控制LED燈實(shí)驗(yàn) 實(shí)驗(yàn)?zāi)康?/p>

      (1)通過(guò)實(shí)驗(yàn)掌握中斷式鍵盤(pán)控制與設(shè)計(jì)方法;(2)熟練編寫(xiě)S3C2410中斷服務(wù)程序。實(shí)驗(yàn)設(shè)備

      (1)S3C2410嵌入式開(kāi)發(fā)板,JTAG仿真器。

      (2)軟件:PC機(jī)操作系統(tǒng)Windows XP,ADS1.2集成開(kāi)發(fā)環(huán)境,仿真器驅(qū)動(dòng)程序,超級(jí)終端通訊程序。實(shí)驗(yàn)內(nèi)容

      編寫(xiě)中斷處理程序,處理一個(gè)鍵盤(pán)中斷,并在串口打印中斷及按鍵顯示信息。實(shí)驗(yàn)步驟

      (1)參照模板工程,新建一個(gè)工程keypad,添加相應(yīng)的文件,并修改keypad的工程設(shè)置;

      (2)創(chuàng)建keypad.c并加入到工程keypad中;(3)編寫(xiě)鍵盤(pán)中斷程序; 參考代碼如下: ①串口初始化程序

      void uart_init()/* UART串口初始化 */ {

      } GPHCON |= 0xa0;GPHUP = 0x0;ULCON0

      //GPH2,GPH3 used as TXD0,RXD0

      //GPH2,GPH3內(nèi)部上拉

      //8N1

      = 0x03;UCON0 = 0x05;UFCON0 = 0x00;

      //查詢(xún)方式為輪詢(xún)或中斷;時(shí)鐘選擇為PCLK

      //不使用FIFO //不使用流控 UMCON0 = 0x00;UBRDIV0 = 26;

      //波特率為57600,PCLK=12Mhz ②發(fā)送數(shù)據(jù)

      while(!(UTRSTAT0 & TXD0READY));UTXH0 = c;③接收數(shù)據(jù)

      while(!(UTRSTAT0 & RXD0READY));return URXH0;④打印數(shù)據(jù)

      int i = 0;

      while(str[i]){ } return i;putc((unsigned char)str[i++]);⑤按鍵初始化

      int key_init()/* 按鍵初始化 */ {

      } ⑥中斷初始化

      void irq_init()/* 中斷初始化 */ {

      }(5)編譯keypad;

      (6)運(yùn)行超級(jí)終端,選擇正確的串口號(hào),并將串口設(shè)置位:波特率(115200)、奇偶校驗(yàn)(None)、數(shù)據(jù)位數(shù)(8)和停止位數(shù)(1),無(wú)流控,打開(kāi)串口; INTMSK &= ~(3<<2);printk(“中斷初始化OKrn”);GPFCON = 0x55aa;GPFUP = 0xff;

      printk(“按鍵初始化OKrn”);return 0;(7)運(yùn)行程序,在超級(jí)終端中輸入的數(shù)據(jù)將回顯到超級(jí)終端上,結(jié)果如圖5.4所示:

      圖6.1 初始化運(yùn)行結(jié)果

      圖6.2 main運(yùn)行結(jié)果 實(shí)驗(yàn)總結(jié)

      通過(guò)這次實(shí)驗(yàn)我鞏固了上次實(shí)驗(yàn)的串口的使用方法,串口初始化、發(fā)送數(shù)據(jù)和接收數(shù)據(jù),同時(shí)也熟悉了中斷的處理過(guò)程,即保護(hù)現(xiàn)場(chǎng)、中斷處理、恢復(fù)現(xiàn)場(chǎng)并返回。

      在實(shí)驗(yàn)時(shí)花費(fèi)了很多的時(shí)間都沒(méi)有按照老師的要求將代碼修改好,主要是因?yàn)閷?duì)代碼的不熟悉和不能很好的靈活運(yùn)用,最后對(duì)老師修改的代碼仔細(xì)的看了,其實(shí)很簡(jiǎn)單。

      第四篇:實(shí)習(xí)總結(jié)-嵌入式ARM

      實(shí)訓(xùn)總結(jié)

      班級(jí) 卓越1301姓名***

      通過(guò)這段時(shí)間的學(xué)習(xí)使我學(xué)到了很多知識(shí),并且了解到ARM的應(yīng)用以及對(duì)開(kāi)發(fā)板的應(yīng)用,為以后的學(xué)習(xí)奠定了一定的基礎(chǔ)。

      嵌入式系統(tǒng)一般定義為以應(yīng)用為中心、以計(jì)算機(jī)技術(shù)為基礎(chǔ),軟硬件可裁剪,應(yīng)用系統(tǒng)對(duì)功能、可靠性、成本、體積、功耗和應(yīng)用環(huán)境有特殊要求的專(zhuān)用計(jì)算機(jī)系統(tǒng)。是將應(yīng)用程序、操作系統(tǒng)和計(jì)算機(jī)硬件集成在一起的系統(tǒng)這是從技術(shù)角度。從系統(tǒng)角度上是設(shè)計(jì)完成復(fù)雜功能的硬件和軟件,并使其緊密耦合在一起的計(jì)算機(jī)系統(tǒng)。

      廣義上講,凡是帶有微處理器的專(zhuān)用軟硬件系統(tǒng)都可稱(chēng)為嵌入式系統(tǒng)。如各類(lèi)單片機(jī)和DSP系統(tǒng)。這些系統(tǒng)在完成較為單一的專(zhuān)業(yè)功能時(shí)具有簡(jiǎn)潔高效的特點(diǎn)。但由于他們沒(méi)有操作系統(tǒng),管理系統(tǒng)硬件核軟件的能力有限,在實(shí)現(xiàn)復(fù)雜多任務(wù)功能時(shí),往往困難重重,甚至無(wú)法實(shí)現(xiàn)。從狹義上講,我們更加強(qiáng)調(diào)那些使用嵌入式微處理器構(gòu)成獨(dú)立系統(tǒng),具有自己操作系統(tǒng),具有特定功能,用于特定場(chǎng)合的嵌入式系統(tǒng)。

      嵌入式的應(yīng)用也比較廣泛涉及軍事國(guó)防、工業(yè)控制、消費(fèi)電子和網(wǎng)絡(luò)。在家用方面更是數(shù)字電視、信息家電、智能玩具、手持通訊、存儲(chǔ)設(shè)備的核心。

      在ARM指令集中了解到ARM的尋址方式以及它的的特性,具有高效、快速的特點(diǎn),還有Thumb指令集具有靈活、小巧的特點(diǎn)。

      在這次實(shí)訓(xùn)中做了兩個(gè)項(xiàng)目,一個(gè)是LED燈,實(shí)現(xiàn)LED燈的點(diǎn)亮是比較簡(jiǎn)單的,通過(guò)查找手冊(cè)可以很快的了解到要使用的寄存器和方法,另一個(gè)項(xiàng)目是DS18B20這個(gè)比較復(fù)雜,除了要掌握對(duì)寄存器的使用,還要對(duì)了解對(duì)串口的初始化,讀寫(xiě)字節(jié)等等。

      感謝這次實(shí)訓(xùn),通過(guò)這次的實(shí)訓(xùn)項(xiàng)目,使我大體了解制作項(xiàng)目的步驟,了解了嵌入式技術(shù)的掌握是需要一個(gè)過(guò)程的。實(shí)事求是的說(shuō),嵌入式技術(shù)的全面掌握是有相當(dāng)難度的,通過(guò)積累和動(dòng)手總會(huì)有收獲的,從實(shí)驗(yàn)中也明白了一個(gè)大的項(xiàng)目并不是一個(gè)人可以完成的,團(tuán)隊(duì)協(xié)作很重要。

      姓名:***

      年級(jí):卓越1301

      2014-7-5

      第五篇:嵌入式實(shí)驗(yàn)報(bào)告

      目錄

      實(shí)驗(yàn)一 跑馬燈實(shí)驗(yàn).........................................................................1 實(shí)驗(yàn)二 按鍵輸入實(shí)驗(yàn).....................................................................3 實(shí)驗(yàn)三 串口實(shí)驗(yàn).............................................................................5 實(shí)驗(yàn)四 外部中斷實(shí)驗(yàn).....................................................................8 實(shí)驗(yàn)五 獨(dú)立看門(mén)狗實(shí)驗(yàn)................................................................11 實(shí)驗(yàn)七 定時(shí)器中斷實(shí)驗(yàn)................................................................13 實(shí)驗(yàn)十三 ADC實(shí)驗(yàn)........................................................................15 實(shí)驗(yàn)十五 DMA實(shí)驗(yàn)........................................................................17 實(shí)驗(yàn)十六 I2C實(shí)驗(yàn)........................................................................21 實(shí)驗(yàn)十七 SPI實(shí)驗(yàn)........................................................................24 實(shí)驗(yàn)二十一 紅外遙控實(shí)驗(yàn)............................................................27 實(shí)驗(yàn)二十二 DS18B20實(shí)驗(yàn).............................................................30

      實(shí)驗(yàn)一 跑馬燈實(shí)驗(yàn)

      一.實(shí)驗(yàn)簡(jiǎn)介

      我的第一個(gè)實(shí)驗(yàn),跑馬燈實(shí)驗(yàn)。

      二.實(shí)驗(yàn)?zāi)康?/p>

      掌握STM32開(kāi)發(fā)環(huán)境,掌握從無(wú)到有的構(gòu)建工程。

      三.實(shí)驗(yàn)內(nèi)容

      熟悉MDK KEIL開(kāi)發(fā)環(huán)境,構(gòu)建基于固件庫(kù)的工程,編寫(xiě)代碼實(shí)現(xiàn)跑馬燈工程。通過(guò)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)板、JLINK。軟件部分:PC機(jī)WINDOWS系統(tǒng)、MDK KEIL軟件、ISP軟件。

      五.實(shí)驗(yàn)步驟

      1.熟悉MDK KEIL開(kāi)發(fā)環(huán)境 2.熟悉串口編程軟件ISP 3.查看固件庫(kù)結(jié)構(gòu)和文件

      4.建立工程目錄,復(fù)制庫(kù)文件 5.建立和配置工程 6.編寫(xiě)代碼 7.編譯代碼

      8.使用ISP下載到實(shí)驗(yàn)板 9.測(cè)試運(yùn)行結(jié)果

      10.使用JLINK下載到實(shí)驗(yàn)板 11.單步調(diào)試

      12.記錄實(shí)驗(yàn)過(guò)程,撰寫(xiě)實(shí)驗(yàn)報(bào)告

      六.實(shí)驗(yàn)結(jié)果及測(cè)試

      源代碼:

      兩個(gè)燈LED0與LED1實(shí)現(xiàn)交替閃爍的類(lèi)跑馬燈效果,每300ms閃爍一次。

      七.實(shí)驗(yàn)總結(jié)

      通過(guò)本次次實(shí)驗(yàn)我了解了STM32開(kāi)發(fā)板的基本使用,初次接觸這個(gè)開(kāi)發(fā)板和MDK KEILC軟件,對(duì)軟件操作不太了解,通過(guò)這次實(shí)驗(yàn)了解并熟練地使用MDK KEIL軟件,用這個(gè)軟件來(lái)編程和完成一些功能的實(shí)現(xiàn)。作為 STM32 的入門(mén)第一個(gè)例子,詳細(xì)介紹了STM32 的IO口操作,同時(shí)鞏固了前面的學(xué)習(xí),并進(jìn)一步介紹了MDK的軟件仿真功能。

      實(shí)驗(yàn)二 按鍵輸入實(shí)驗(yàn)

      一.實(shí)驗(yàn)簡(jiǎn)介

      在實(shí)驗(yàn)一的基礎(chǔ)上,使用按鍵控制流水燈速度,及使用按鍵控制流水燈流水方向。

      二.實(shí)驗(yàn)?zāi)康?/p>

      熟練使用庫(kù)函數(shù)操作GPIO,掌握中斷配置和中斷服務(wù)程序編寫(xiě)方法,掌握通過(guò)全局變量在中斷服務(wù)程序和主程序間通信的方法。

      三.實(shí)驗(yàn)內(nèi)容

      實(shí)現(xiàn)初始化GPIO,并配置中斷,在中斷服務(wù)程序中通過(guò)修改全局變量,達(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ǔ)上,編寫(xiě)中斷初始化代碼

      2在主程序中聲明全局變量,用于和中斷服務(wù)程序通信,編寫(xiě)完成主程序 3編寫(xiě)中斷服務(wù)程序

      4編譯代碼,使用JLINK下載到實(shí)驗(yàn)板 5.單步調(diào)試

      6記錄實(shí)驗(yàn)過(guò)程,撰寫(xiě)實(shí)驗(yàn)報(bào)告

      六.實(shí)驗(yàn)結(jié)果及測(cè)試

      源代碼:

      我們將通過(guò)MiniSTM32 板上載有的3個(gè)按鈕,來(lái)控制板上的2個(gè)LED,其中KEY0控制LED0,按一次亮,再按一次,就滅。KEY1 控制LED1,效果同KEY0。KEY_2(KEY_UP),同時(shí)控制LED0 和LED1,按一次,他們的狀態(tài)就翻轉(zhuǎn)一次。

      七.實(shí)驗(yàn)總結(jié)

      通過(guò)本次實(shí)驗(yàn),我學(xué)會(huì)了如何使用STM32 的IO 口作為輸入用。TM32 的IO 口做輸入使用的時(shí)候,是通過(guò)讀取IDR 的內(nèi)容來(lái)讀取IO 口的狀態(tài)的。這里需要注意的是 KEY0 和KEY1 是低電平有效的,而WK_UP 是高電平有效的,而且要確認(rèn)WK_UP 按鈕與DS18B20 的連接是否已經(jīng)斷開(kāi),要先斷開(kāi),否則DS18B20 會(huì)干擾WK_UP按鍵!并且KEY0 和KEY1 連接在與JTAG 相關(guān)的IO 口上,所以在軟件編寫(xiě)的時(shí)候要先禁用JTAG 功能,才能把這兩個(gè)IO 口當(dāng)成普通IO 口使用。

      實(shí)驗(yàn)三 串口實(shí)驗(yàn)

      一.實(shí)驗(yàn)簡(jiǎn)介

      編寫(xiě)代碼實(shí)現(xiàn)串口發(fā)送和接收,將通過(guò)串口發(fā)送來(lái)的數(shù)據(jù)回送回去。

      二.實(shí)驗(yàn)?zāi)康?/p>

      掌握STM32基本串口編程,進(jìn)一步學(xué)習(xí)中斷處理。

      三.實(shí)驗(yàn)內(nèi)容

      編寫(xiě)主程序,初始化串口1,設(shè)置波特率為9600,無(wú)校驗(yàn),數(shù)據(jù)位8位,停止位1位。編寫(xiě)中斷服務(wù)程序代碼實(shí)現(xiàn)將發(fā)送過(guò)來(lái)的數(shù)據(jù)回送。

      四.實(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編寫(xiě)串口初始化代碼

      2編寫(xiě)中斷服務(wù)程序代碼

      3編譯代碼,使用JLINK或ISP下載到實(shí)驗(yàn)板 4記錄實(shí)驗(yàn)過(guò)程,撰寫(xiě)實(shí)驗(yàn)報(bào)告

      六.實(shí)驗(yàn)結(jié)果及測(cè)試

      源代碼:

      把代碼下載到 MiniSTM32 開(kāi)發(fā)板,可以看到板子上的LED0 開(kāi)始閃爍,說(shuō)明程序已經(jīng)在跑了。接著我們打開(kāi)串口調(diào)試助手,看到如下信息:

      證明串口數(shù)據(jù)發(fā)送沒(méi)問(wèn)題。接著,我們?cè)诎l(fā)送區(qū)輸入上面的文字,輸入完后按回車(chē)鍵。然后單擊發(fā)送,可以得到如下結(jié)果:

      七.實(shí)驗(yàn)總結(jié)

      通過(guò)本次實(shí)驗(yàn),我進(jìn)一步了解了串口的使用,學(xué)會(huì)了通過(guò)串口發(fā)送和接收數(shù)據(jù),將通過(guò)串口發(fā)送來(lái)的數(shù)據(jù)回送回去。該實(shí)驗(yàn)的硬件配置不同于前兩個(gè)實(shí)驗(yàn),串口 1 與USB 串口默認(rèn)是分開(kāi)的,并沒(méi)有在PCB上連接在一起,需要通過(guò)跳線帽來(lái)連接一下。這里我們把P4 的RXD 和TXD 用跳線帽與P3 的PA9 和PA10 連接起來(lái)。

      實(shí)驗(yàn)四 外部中斷實(shí)驗(yàn)

      一.實(shí)驗(yàn)簡(jiǎn)介

      STM32 的 IO 口在本章第一節(jié)有詳細(xì)介紹,而外部中斷在第二章也有詳細(xì)的闡述。這里我們將介紹如何將這兩者結(jié)合起來(lái),實(shí)現(xiàn)外部中斷輸入。

      二.實(shí)驗(yàn)?zāi)康?/p>

      進(jìn)一步掌握串口編程,進(jìn)一步學(xué)習(xí)外部中斷編程,提高編程能力。

      三.實(shí)驗(yàn)內(nèi)容

      初始化IO口的輸入,開(kāi)啟復(fù)用時(shí)鐘,設(shè)置IO與中斷的映射關(guān)系,從而開(kāi)啟與IO口相對(duì)應(yīng)的線上中斷事件,設(shè)置觸發(fā)條件。配置中斷分組(NVIC),并使能中斷,編寫(xiě)中斷服務(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.2.3.4.編寫(xiě)中斷服務(wù)程序代碼 使用ISP下載到實(shí)驗(yàn)板 測(cè)試運(yùn)行結(jié)果

      記錄實(shí)驗(yàn)過(guò)程,撰寫(xiě)實(shí)驗(yàn)報(bào)告

      六.實(shí)驗(yàn)結(jié)果及測(cè)試

      源代碼:

      打開(kāi)串口助手。

      七.實(shí)驗(yàn)總結(jié)

      首先需要將IO設(shè)置為中斷輸入口: 1)初始化 IO 口為輸入。

      2)開(kāi)啟 IO 口復(fù)用時(shí)鐘,設(shè)置 IO 口與中斷線的映射關(guān)系。

      3)開(kāi)啟與該 IO口相對(duì)的線上中斷/事件,設(shè)置觸發(fā)條件。

      4)配置中斷分組(NVIC),并使能中斷。

      5)編寫(xiě)中斷服務(wù)函數(shù)。

      這一節(jié),使用的是中斷來(lái)檢測(cè)按鍵,通過(guò) WK_UP 按鍵實(shí)現(xiàn)按一次 LED0 和 LED 1 同時(shí)翻轉(zhuǎn),按 KEY0 翻轉(zhuǎn) LED0,按 KEY1 翻轉(zhuǎn) LED1。

      試驗(yàn)中外部中斷函數(shù)不能進(jìn)入的原因分析 : 1)GPIO或者AFIO的時(shí)鐘沒(méi)有開(kāi)啟。2)GPIO和配置的中斷線路不匹配。3)中斷觸發(fā)方式和實(shí)際不相符合。

      4)中斷處理函數(shù)用庫(kù)函數(shù)時(shí),寫(xiě)錯(cuò),經(jīng)??赡艹霈F(xiàn)數(shù)字和字母之間沒(méi)有下劃線。5)外部中斷是沿觸發(fā),有可能不能檢測(cè)到沿,比如 中斷線是低電平(浮空輸入),觸發(fā)是下降沿觸發(fā),可能會(huì)出現(xiàn)一直是低電平,高電平的時(shí)候是一樣的情況,電平持續(xù)為高電平。

      6)沒(méi)有用軟件中斷來(lái)觸發(fā)外部中斷,調(diào)用函數(shù)EXTI_GenerateSWInterrupt;,因?yàn)檐浖袛嘞扔谶呇刂袛嗵幚怼?/p>

      實(shí)驗(yàn)五 獨(dú)立看門(mén)狗實(shí)驗(yàn)

      一. 實(shí)驗(yàn)簡(jiǎn)介

      獨(dú)立看門(mén)狗(IWDG)由專(zhuān)用的低速時(shí)鐘(LSI)驅(qū)動(dòng),即使主時(shí)鐘發(fā)生故障它也仍然有效。窗口看門(mén)狗由從APB1時(shí)鐘分頻后得到的時(shí)鐘驅(qū)動(dòng),通過(guò)可配置的時(shí)間窗口來(lái)檢測(cè)應(yīng)用程序非正常的過(guò)遲或過(guò)早的操作。

      二.實(shí)驗(yàn)?zāi)康?/p>

      通過(guò)編程,編寫(xiě)一個(gè)獨(dú)立看門(mén)狗驅(qū)動(dòng)程序

      三.實(shí)驗(yàn)內(nèi)容

      啟動(dòng) STM32 的獨(dú)立看門(mén)狗,從而使能看門(mén)狗,在程序里面必須間隔一定時(shí)間喂狗,否則將導(dǎo)致程序復(fù)位。利用這一點(diǎn),我們本章將通過(guò)一個(gè) LED 燈來(lái)指示程序是否重啟,來(lái)驗(yàn)證 STM32 的獨(dú)立看門(mén)狗。

      四.實(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.2.3.4.參考教材獨(dú)立看門(mén)狗部分,編寫(xiě)?yīng)毩⒖撮T(mén)狗驅(qū)動(dòng)程序。建立和配置工程 編寫(xiě)代碼

      使用ISP下載到實(shí)驗(yàn)板

      記錄實(shí)驗(yàn)過(guò)程,撰寫(xiě)實(shí)驗(yàn)報(bào)告

      六.實(shí)驗(yàn)結(jié)果及測(cè)試

      源代碼:

      在配置看門(mén)狗后,看到LED0 不停的閃爍,如果WK_UP 按鍵按下,就喂狗,只要WK_UP 不停的按,看門(mén)狗就一直不會(huì)產(chǎn)生復(fù)位,保持LED0 的常亮,一旦超過(guò)看門(mén)狗定溢出時(shí)間(Tout)還沒(méi)按,那么將會(huì)導(dǎo)致程序重啟,這將導(dǎo)致LED0 熄滅一次。

      七.實(shí)驗(yàn)總結(jié)

      通過(guò)本次實(shí)驗(yàn),我掌握了啟動(dòng)獨(dú)立看門(mén)狗的步驟: 1)向 IWDG_KR 寫(xiě)入 0X5555。2)向 IWDG_KR 寫(xiě)入 0XAAAA。3)向 IWDG_KR 寫(xiě)入 0XCCCC。

      通過(guò)上面 3個(gè)步驟,啟動(dòng) STM32 的看門(mén)狗,從而使能看門(mén)狗,在程序里面就必須間隔一定時(shí)間喂狗,否則將導(dǎo)致程序復(fù)位。利用這一點(diǎn),本章通過(guò)一個(gè)LED 燈來(lái)指示程序是否重啟,來(lái)驗(yàn)證 STM32 的獨(dú)立看門(mén)狗。在配置看門(mén)狗后,LED0 將常亮,如果 WK_UP 按鍵按下,就喂狗,只要 WK_UP 不停的按,看門(mén)狗就一直不會(huì)產(chǎn)生復(fù)位,保持 LED 0 的常亮,一旦超過(guò)看門(mén)狗溢出時(shí)間(Tout)還沒(méi)按,那么將會(huì)導(dǎo)致程序重啟,這將導(dǎo)致 LED 0 熄滅一次。

      實(shí)驗(yàn)七 定時(shí)器中斷實(shí)驗(yàn)

      一. 實(shí)驗(yàn)簡(jiǎn)介

      STM32 的定時(shí)器是一個(gè)通過(guò)可編程預(yù)分頻器(PSC)驅(qū)動(dòng)的 16 位自動(dòng)裝載計(jì)數(shù)器(CNT)構(gòu)成。STM32 的通用定時(shí)器可以被用于:測(cè)量輸入信號(hào)的脈沖長(zhǎng)度(輸入捕獲)或者產(chǎn)生輸出波形(輸出比較和 PWM)等。使用定時(shí)器預(yù)分頻器和 RCC 時(shí)鐘控制器預(yù)分頻器,脈沖長(zhǎng)度和波形周期可以在幾微秒到幾毫秒間調(diào)整。STM32 的每個(gè)通用定時(shí)器都是完全獨(dú)立的,沒(méi)有互相共享的任何資源。

      二.實(shí)驗(yàn)?zāi)康?/p>

      熟練掌握定時(shí)器中斷,學(xué)會(huì)對(duì)定時(shí)器中斷的編程操作。

      三.實(shí)驗(yàn)內(nèi)容

      使用定時(shí)器產(chǎn)生中斷,然后在中斷服務(wù)函數(shù)里面翻轉(zhuǎn) LED1 上的電平,來(lái)指示定時(shí)器中斷的產(chǎn)生,修改中斷時(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.參考教材定時(shí)器中斷部分,編寫(xiě)定時(shí)器中斷的驅(qū)動(dòng)程序。2.編寫(xiě)主程序

      3.編譯代碼,使用JLINK或ISP下載到實(shí)驗(yàn)板 4.記錄實(shí)驗(yàn)過(guò)程,撰寫(xiě)實(shí)驗(yàn)報(bào)告

      六.實(shí)驗(yàn)結(jié)果及測(cè)試

      源代碼:

      七.實(shí)驗(yàn)總結(jié)

      通過(guò)本次實(shí)驗(yàn),認(rèn)識(shí)到時(shí)間中斷來(lái)控制LED燈的閃爍,同時(shí)也可以將時(shí)間中斷應(yīng)用到控制其他的程序塊。

      以TIME3為例產(chǎn)生中斷的步驟為 1)TIM3 時(shí)鐘使能。

      2)設(shè)置 TIM3_ARR 和 TIM3_PSC 的值。

      3)設(shè)置 TIM3_DIER 允許更新中斷。

      4)允許 TIM3 工作。

      5)TIM3 中斷分組設(shè)置。6)編寫(xiě)中斷服務(wù)函數(shù)。

      在中斷產(chǎn)生后,通過(guò)狀態(tài)寄存器的值來(lái)判斷此次產(chǎn)生的中斷屬于什么類(lèi)型。然后執(zhí)行相關(guān)的操作,我們這里使用的是更新(溢出)中斷,所以在狀態(tài)寄存器 SR 的最低位。在處理完中斷之后應(yīng)該向 TIM3_SR 的最低位寫(xiě) 0,來(lái)清除該中斷標(biāo)志。

      實(shí)驗(yàn)十三 ADC實(shí)驗(yàn)

      一.實(shí)驗(yàn)簡(jiǎn)介

      通過(guò)DAC將STM32系統(tǒng)的數(shù)字量轉(zhuǎn)換為模擬量。使用ADC將模擬量轉(zhuǎn)換為數(shù)字量。

      二.實(shí)驗(yàn)?zāi)康?/p>

      掌握DAC和ADC編程。

      三.實(shí)驗(yàn)內(nèi)容

      編寫(xiě)代碼實(shí)現(xiàn)簡(jiǎn)單的DAC單次發(fā)送

      編寫(xiě)代碼實(shí)現(xiàn)ADC采集DAC發(fā)送的數(shù)據(jù),并發(fā)送到串口

      四.實(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編寫(xiě)主程序

      2編譯代碼,使用JLINK或ISP下載到實(shí)驗(yàn)板,使用串口調(diào)試助手觀察數(shù)據(jù) 3記錄實(shí)驗(yàn)過(guò)程,撰寫(xiě)實(shí)驗(yàn)報(bào)告

      六.實(shí)驗(yàn)結(jié)果及測(cè)試

      源代碼:

      七.實(shí)驗(yàn)總結(jié)

      本節(jié)將利用 STM32的 ADC1 通道 0 來(lái)采樣外部電壓值,并在串口調(diào)試助手中顯示出來(lái)。步驟如下:

      1)開(kāi)啟 PA 口時(shí)鐘,設(shè)置 PA0 為模擬輸入。

      2)使能 ADC1 時(shí)鐘,并設(shè)置分頻因子。

      3)設(shè)置 ADC1 的工作模式。

      4)設(shè)置 ADC1 規(guī)則序列的相關(guān)信息。

      5)開(kāi)啟 AD 轉(zhuǎn)換器,并校準(zhǔn)。

      6)讀取 ADC 值。

      在上面的校準(zhǔn)完成之后,ADC 就算準(zhǔn)備好了。接下來(lái)我們要做的就是設(shè)置規(guī)則序列 0 里面的通道,然后啟動(dòng) ADC 轉(zhuǎn)換。在轉(zhuǎn)換結(jié)束后,讀取 ADC1_DR 里面的值。

      通過(guò)以上幾個(gè)步驟的設(shè)置,可以正常的使用 STM32 的 ADC1 來(lái)執(zhí)行 AD 轉(zhuǎn)換操作。

      通過(guò)本次實(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)簡(jiǎn)介

      直接存儲(chǔ)器存取(DMA)用來(lái)提供在外設(shè)和存儲(chǔ)器之間或者存儲(chǔ)器和存儲(chǔ)器之間的高速數(shù)據(jù)傳輸。無(wú)須CPU干預(yù),數(shù)據(jù)可以通過(guò)DMA快速地移動(dòng),這就節(jié)省了CPU的資源來(lái)做其他操作。

      二.實(shí)驗(yàn)?zāi)康?/p>

      熟練掌握DMA編程,學(xué)會(huì)對(duì)EPC02的讀寫(xiě)操作,學(xué)習(xí)雙緩沖兵乓操作,理解互斥資源。提高編程能力。

      三.實(shí)驗(yàn)內(nèi)容

      利用外部按鍵KEY0 來(lái)控制DMA 的傳送,每按一次KEY0,DMA 就傳送一次數(shù)據(jù)

      到USART1,然后在串口調(diào)試助手觀察進(jìn)度等信息。LED0 還是用來(lái)做為程序運(yùn)行的指示燈。

      這里我們使用到的硬件資源如下: 1)按鍵KEY0。2)指示燈LED0。

      3)使用串口調(diào)試助手觀察數(shù)據(jù)

      四.實(shí)驗(yàn)設(shè)備

      硬件部分:PC計(jì)算機(jī)(宿主機(jī))、亮點(diǎn)STM32實(shí)驗(yàn)板、JLINK。

      軟件部分:PC機(jī)WINDOWS系統(tǒng)、MDK KEIL軟件、ISP軟件、網(wǎng)絡(luò)調(diào)試助手。

      五.實(shí)驗(yàn)步驟

      1編寫(xiě)主程序

      2編譯代碼,使用JLINK或ISP下載到實(shí)驗(yàn)板,使用串口調(diào)試助手觀察數(shù)據(jù) 3記錄實(shí)驗(yàn)過(guò)程,撰寫(xiě)實(shí)驗(yàn)報(bào)告

      六.實(shí)驗(yàn)結(jié)果及測(cè)試

      源代碼:

      伴隨 LED0 的不停閃爍,提示程序在運(yùn)行。我們打開(kāi)串口調(diào)試助手,然后按KEY0,可以看到串口顯示如下內(nèi)容:

      七.實(shí)驗(yàn)總結(jié)

      本節(jié)利用 STM32 的 DMA 來(lái)實(shí)現(xiàn)串口數(shù)據(jù)傳送,DMA通道的配置需要: 1)設(shè)置外設(shè)地址。

      2)設(shè)置存儲(chǔ)器地址。

      3)設(shè)置傳輸數(shù)據(jù)量。

      4)設(shè)置通道 4 的配置信息。

      5)使能 DMA1 通道 4,啟動(dòng)傳輸。

      通過(guò)以上 5 步設(shè)置,我們就可以啟動(dòng)一次 USART1 的 DMA 傳輸了。

      DMA控制器對(duì)DMA請(qǐng)求判別優(yōu)先級(jí)及屏蔽,向總線裁決邏輯提出總線請(qǐng)求。當(dāng)CPU執(zhí)行完當(dāng)前總線周期即可釋放總線控制權(quán)。此時(shí),總線裁決邏輯輸出總線應(yīng)答,表示DMA已經(jīng)響應(yīng),通過(guò)DMA控制器通知I/O接口開(kāi)始DMA傳輸。

      DMA控制器獲得總線控制權(quán)后,CPU即刻掛起或只執(zhí)行內(nèi)部操作,由DMA控制器輸出讀寫(xiě)命令,直接控制RAM與I/O接口進(jìn)行DMA傳輸。

      在DMA控制器的控制下,在存儲(chǔ)器和外部設(shè)備之間直接進(jìn)行數(shù)據(jù)傳送,在傳送過(guò)中不需要中央處理器的參與。開(kāi)始時(shí)需提供要傳送的數(shù)據(jù)的起始位置和數(shù)據(jù)長(zhǎng)度。

      當(dāng)完成規(guī)定的成批數(shù)據(jù)傳送后,DMA控制器即釋放總線控制權(quán),并向I/O接口發(fā)出結(jié)束信號(hào)。當(dāng)I/O接口收到結(jié)束信號(hào)后,一方面停 止I/O設(shè)備的工作,另一方面向CPU提出中斷請(qǐng)求,使CPU從不介入的狀態(tài)解脫,并執(zhí)行一段檢查本次DMA傳輸操作正確性的代碼。最后,帶著本次操作結(jié)果及狀態(tài)繼續(xù)執(zhí)行原來(lái)的程序。

      由此可見(jiàn),DMA傳輸方式無(wú)需CPU直接控制傳輸,也沒(méi)有中斷處理方式那樣保留現(xiàn)場(chǎng)和恢復(fù)現(xiàn)場(chǎng)的過(guò)程,通過(guò)硬件為RAM與I/O設(shè)備開(kāi)辟一條直接傳送數(shù)據(jù)的通路,使CPU的效率大為提高。

      實(shí)驗(yàn)十六 I2C實(shí)驗(yàn)

      一.實(shí)驗(yàn)簡(jiǎn)介

      編程實(shí)現(xiàn)對(duì)使用I2C接口的EPC02芯片進(jìn)行寫(xiě)和讀操作。

      二.實(shí)驗(yàn)?zāi)康?/p>

      熟練掌握I2C編程,學(xué)會(huì)對(duì)EPC02的讀寫(xiě)操作。

      三.實(shí)驗(yàn)內(nèi)容

      編寫(xiě)I2C驅(qū)動(dòng)程序,使用驅(qū)動(dòng)程序初始化EPC02,判斷設(shè)備正確性。

      寫(xiě)256個(gè)0x5A到EPC02,讀出并發(fā)送給串口,通過(guò)串口調(diào)試助手判別是否讀到的都是0x5A.四.實(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參考教材I2C部分,編寫(xiě)I2C驅(qū)動(dòng)程序。2編寫(xiě)主程序

      3編譯代碼,使用JLINK或ISP下載到實(shí)驗(yàn)板 4記錄實(shí)驗(yàn)過(guò)程,撰寫(xiě)實(shí)驗(yàn)報(bào)告

      六.實(shí)驗(yàn)結(jié)果及測(cè)試

      伴隨 LED0 的不停閃爍,提示程序在運(yùn)行。我們先按下KEY0,可以看到如下所示的內(nèi)容,證明數(shù)據(jù)已經(jīng)被寫(xiě)入到24C02了。

      接著我們按KEY2,可以看我們剛剛寫(xiě)入的數(shù)據(jù)被顯示出來(lái)了,如下圖所示:

      源代碼:

      七.實(shí)驗(yàn)總結(jié)

      IIC是由數(shù)據(jù)線 SDA 和時(shí)鐘 SCL 構(gòu)成的串行總線,可發(fā)送和接收數(shù)據(jù)。在 CPU 與被控 IC 之間、IC 與 IC 之間進(jìn)行雙向傳送,高速 IIC 總線一般可達(dá) 400kbps 以上。

      IIC總線在傳送數(shù)據(jù)過(guò)程中共有三種類(lèi)型信號(hào),它們分別是:開(kāi)始信號(hào)、結(jié)束信號(hào)和應(yīng)答信號(hào)。這些信號(hào)中,起始信號(hào)是必需的,結(jié)束信號(hào)和應(yīng)答信號(hào),都可以不要。程序在開(kāi)機(jī)的時(shí)候會(huì)檢測(cè) 24C02 是否存在,如果不存在則會(huì)在TFTLCD 模塊上顯示錯(cuò)誤信息,同時(shí)LED0 慢閃。大家可以通過(guò)跳線帽把PC11 和PC12 短接就可以看到報(bào)錯(cuò)了。通過(guò)本次實(shí)驗(yàn),我掌握了如何使用IIC寫(xiě)入與讀出數(shù)據(jù),學(xué)習(xí)了編寫(xiě)I2C驅(qū)動(dòng)程序,使用驅(qū)動(dòng)程序初始化EPC02,判斷設(shè)備正確性,以及如何在助手上顯示。

      實(shí)驗(yàn)十七 SPI實(shí)驗(yàn)

      一.實(shí)驗(yàn)簡(jiǎn)介

      編程實(shí)現(xiàn)對(duì)SPI接口的W25Q64進(jìn)行讀寫(xiě)操作。

      二.實(shí)驗(yàn)?zāi)康?/p>

      熟練掌握SPI編程,學(xué)會(huì)對(duì)的W25Q64讀寫(xiě)操作。

      三.實(shí)驗(yàn)內(nèi)容

      1.2.3.4.5.編寫(xiě)SPI驅(qū)動(dòng)程序 初始化SPI接口

      讀取SPIFLASH的ID,如果正確繼續(xù),否則報(bào)錯(cuò)

      向SPIFALSH地址0x12AB00開(kāi)始寫(xiě)一串字符,再讀出比較判斷是否與寫(xiě)入的一致 向SPIFALSH地址0x12AB00開(kāi)始寫(xiě)連續(xù)256個(gè)字節(jié)的0x5A,然后讀出并發(fā)送給串口,通過(guò)串口調(diào)試助手判別是否讀到的都是0x5A.四.實(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參考SPI及SPI FLASH部分,編寫(xiě)SPI及SPI FLASH驅(qū)動(dòng)程序(可參考書(shū)上代碼)。2編寫(xiě)主程序

      3編譯代碼,使用JLINK或ISP下載到實(shí)驗(yàn)板 4記錄實(shí)驗(yàn)過(guò)程,撰寫(xiě)實(shí)驗(yàn)報(bào)告

      六.實(shí)驗(yàn)結(jié)果及測(cè)試

      源代碼:

      伴隨 LED0 的不停閃爍,提示程序在運(yùn)行。我們先按下KEY0,可以看到如圖13.17.4.2 所示的內(nèi)容,證明數(shù)據(jù)已經(jīng)被寫(xiě)入到W25X16了。

      接著我們按KEY2,可以看我們剛剛寫(xiě)入的數(shù)據(jù)被顯示出來(lái)了,如下圖所示:

      七.實(shí)驗(yàn)總結(jié)

      SPI 接口主要應(yīng)用在EEPROM,F(xiàn)LASH,實(shí)時(shí)時(shí)鐘,AD 轉(zhuǎn)換器,還有數(shù)字信號(hào)處理器和數(shù)字信號(hào)解碼器之間。SPI,是一種高速的,全雙工,同步的通信總線,并且在芯片的管腳上只占用四根線,節(jié)約了芯片的管腳,同時(shí)為 PCB 的布局上節(jié)省空間,提供方便,正是出于這種簡(jiǎn)單易用的特性,現(xiàn)在越來(lái)越多的芯片集成了這種通信協(xié)議,STM32 也有 SPI 接口。

      SPI 的設(shè)置步驟:

      1)配置相關(guān)引腳的復(fù)用功能,使能 SPI時(shí)鐘。

      2)設(shè)置 SPI 工作模式。

      3)使能 SPI。

      程序在開(kāi)機(jī)的時(shí)候會(huì)檢測(cè) W25X16 是否存在,如果不存在則會(huì)在TFTLCD 模塊上顯示錯(cuò)誤信息,同時(shí)LED0 慢閃。大家可以通過(guò)跳線帽把PA5 和PA6 短接就可以看到報(bào)錯(cuò)了。通過(guò)本實(shí)驗(yàn),我掌握了編寫(xiě)SPI程序?qū)懭牒妥x取FLASH的方法,掌握了對(duì)學(xué)會(huì)對(duì)的W25Q64讀寫(xiě)操作。對(duì)STM32開(kāi)發(fā)板有了進(jìn)一步的了解。

      實(shí)驗(yàn)二十一 紅外遙控實(shí)驗(yàn)

      一. 實(shí)驗(yàn)簡(jiǎn)介

      編程實(shí)現(xiàn)通過(guò)在 ALIENTEK MiniSTM32 開(kāi)發(fā)板上實(shí)現(xiàn)紅外遙控器的控制。

      二.實(shí)驗(yàn)?zāi)康?/p>

      掌握編程實(shí)現(xiàn)紅外遙控控制開(kāi)發(fā)板的方法。

      三.實(shí)驗(yàn)內(nèi)容

      1.編寫(xiě)紅外遙控驅(qū)動(dòng)程序 2.編寫(xiě)紅外遙控程序代碼 3.使用紅外遙控控制開(kāi)發(fā)板

      四.實(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)步驟

      4.編寫(xiě)紅外遙控驅(qū)動(dòng)程序 5.編寫(xiě)紅外遙控程序代碼

      6.編譯代碼,使用JLINK或ISP下載到實(shí)驗(yàn)板 7.記錄實(shí)驗(yàn)過(guò)程,撰寫(xiě)實(shí)驗(yàn)報(bào)告

      六.實(shí)驗(yàn)結(jié)果及測(cè)試

      源代碼:

      使用串口調(diào)試助手觀察數(shù)據(jù)

      七.實(shí)驗(yàn)總結(jié)

      紅外遙控是一種無(wú)線、非接觸控制技術(shù),具有抗干擾能力強(qiáng),信息傳輸可靠,功耗低,成本低,易實(shí)現(xiàn)等顯著優(yōu)點(diǎn),被諸多電子設(shè)備特別是家用電器廣泛采用,并越來(lái)越多的應(yīng)用到計(jì)算機(jī)系統(tǒng)中。

      通過(guò)本節(jié)實(shí)驗(yàn),我學(xué)習(xí)到了如何編程使用紅外遙控控制,在本程序中只是簡(jiǎn)單地輸出一個(gè)數(shù)值,在以后的應(yīng)用中可以實(shí)現(xiàn)更強(qiáng)大的功能,比如用紅外遠(yuǎn)程輸入控制開(kāi)發(fā)板進(jìn)行一些操作。對(duì)STM32有了進(jìn)一步的認(rèn)識(shí)。

      實(shí)驗(yàn)二十二 DS18B20實(shí)驗(yàn)

      一. 實(shí)驗(yàn)簡(jiǎn)介

      一. 在ALIENTEK MiniSTM32 開(kāi)發(fā)板上,通過(guò) DS18B20 來(lái)讀取環(huán)境溫度值。

      二.實(shí)驗(yàn)?zāi)康?/p>

      鞏固SPI編程。掌握使用感應(yīng)器獲取環(huán)境溫度的方法。

      三.實(shí)驗(yàn)內(nèi)容

      1.復(fù)位脈沖和應(yīng)答脈沖

      2.寫(xiě)時(shí)序

      3.讀時(shí)序

      四.實(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.2.3.4.參考教材DS18B20編程部分,編寫(xiě)DS18B20驅(qū)動(dòng)程序 編寫(xiě)主程序

      編譯代碼,使用JLINK或ISP下載到實(shí)驗(yàn)板 記錄實(shí)驗(yàn)過(guò)程,撰寫(xiě)實(shí)驗(yàn)報(bào)告

      六.實(shí)驗(yàn)結(jié)果及測(cè)試

      源代碼:

      使用串口調(diào)試助手觀察數(shù)據(jù):

      七.實(shí)驗(yàn)總結(jié)

      DS18B20 是由 DALLAS 半導(dǎo)體公司推出的一種的“一線總線”接口的溫度傳感器。與傳統(tǒng)的熱敏電阻等測(cè)溫元件相比,它是一種新型的體積小、適用電壓寬、與微處理器接口簡(jiǎn)單的數(shù)字化溫度傳感器。

      通過(guò)本次實(shí)驗(yàn),我認(rèn)識(shí)到STM32的強(qiáng)大,在開(kāi)發(fā)板上可以添加其他感應(yīng)器從而實(shí)現(xiàn)更強(qiáng)大的功能。添加了DS18B20后的開(kāi)發(fā)板可以感應(yīng)外界的溫度,通過(guò)公式計(jì)算顯示出來(lái)。

      下載ARM與嵌入式實(shí)驗(yàn)報(bào)告(5篇)word格式文檔
      下載ARM與嵌入式實(shí)驗(yàn)報(bào)告(5篇).doc
      將本文檔下載到自己電腦,方便修改和收藏,請(qǐng)勿使用迅雷等下載。
      點(diǎn)此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶(hù)自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        嵌入式實(shí)驗(yàn)報(bào)告

        嵌入式系統(tǒng)及應(yīng)用課 程設(shè)計(jì)報(bào)告姓名:陳宥祎 班級(jí):14級(jí)計(jì)算機(jī)01班 學(xué)號(hào):1255010116 指導(dǎo)老師:黃衛(wèi)紅 按鍵輸入實(shí)驗(yàn) 一.實(shí)驗(yàn)簡(jiǎn)介 在實(shí)驗(yàn)一的基礎(chǔ)上,使用按鍵控制流水燈速度,及使用......

        嵌入式實(shí)驗(yàn)報(bào)告

        西安郵電大學(xué) 嵌入式處理器及應(yīng)用實(shí)驗(yàn)報(bào)告書(shū) 學(xué)院名稱(chēng)學(xué)生姓名專(zhuān)業(yè)名稱(chēng)班級(jí) : : : :實(shí)驗(yàn)一ADS 1.2 集成開(kāi)發(fā)環(huán)境練習(xí)一、實(shí)驗(yàn)?zāi)康模?了解ADS 1.2 集成開(kāi)發(fā)環(huán)境的使用方法。 二、......

        嵌入式實(shí)驗(yàn)報(bào)告

        實(shí)驗(yàn)一 ARM匯編語(yǔ)言程序設(shè)計(jì) 一、 實(shí)驗(yàn)?zāi)康?1. 了解IAR Embedded Workbench 集成開(kāi)發(fā)環(huán)境 2. 掌握ARM匯編指令程序的設(shè)計(jì)及調(diào)試 二、 實(shí)驗(yàn)設(shè)備 1. PC操作系統(tǒng)WIN98或WIN2000......

        嵌入式實(shí)驗(yàn)報(bào)告

        北京科技大學(xué) 黃強(qiáng)41050176 嵌入式實(shí)驗(yàn)報(bào)告 實(shí)驗(yàn)一 建立并編譯WinCE平臺(tái) 【實(shí)驗(yàn)?zāi)康摹?掌握PB下WinCE平臺(tái)的定制 【實(shí)驗(yàn)內(nèi)容】 開(kāi)始利用Platform Builder定制平臺(tái)并編譯 【......

        嵌入式實(shí)驗(yàn)報(bào)告

        計(jì)算機(jī)專(zhuān)業(yè)類(lèi)課程 實(shí)驗(yàn)報(bào)告 課程名稱(chēng):嵌入式微處理器系統(tǒng)及應(yīng)用 學(xué) 院:計(jì)算機(jī)科學(xué)與工程 專(zhuān) 業(yè):計(jì)算機(jī)科學(xué)與技術(shù) 學(xué)生姓名:廖雪平學(xué) 號(hào):2011060120003 指導(dǎo)教師:陳麗蓉 日 期:201......

        嵌入式實(shí)驗(yàn)報(bào)告

        《嵌入式Linux實(shí)驗(yàn)開(kāi)發(fā)》 ——實(shí)驗(yàn)二、安裝和備份Linux 系統(tǒng) ——實(shí)驗(yàn)三、ADS 集成開(kāi)發(fā)環(huán)境的使用 ——實(shí)驗(yàn)四、在虛擬機(jī)中安裝linux ——實(shí)驗(yàn)五、虛擬機(jī)和主機(jī)數(shù)據(jù)通信......

        ARM與嵌入式Linux的入門(mén)建議.

        ARM與嵌入式linux的入門(mén)建議 ARM與嵌入式linux的入門(mén)建議 類(lèi)別:嵌入式系統(tǒng)由于很多人總問(wèn)這個(gè)問(wèn)題,所以這里做一個(gè)總結(jié)文檔供大家參考。這里必須先說(shuō)明,以下的步驟都是針對(duì)Linu......

        ARM嵌入式基礎(chǔ)教程知識(shí)點(diǎn)總結(jié)

        1、舉出書(shū)本中未提到的嵌入式在每種異常模式下都有一個(gè)對(duì)統(tǒng):嵌入式μCLinux、Windows 系統(tǒng)的例子:紅綠燈控制,數(shù)字應(yīng)的物理寄存器——程序狀態(tài)CE、VxWorks、μC/OS-II 空調(diào),......