嵌入式技術(shù)及應(yīng)用實(shí)驗(yàn)GPIO實(shí)驗(yàn)報(bào)告_第1頁(yè)
嵌入式技術(shù)及應(yīng)用實(shí)驗(yàn)GPIO實(shí)驗(yàn)報(bào)告_第2頁(yè)
嵌入式技術(shù)及應(yīng)用實(shí)驗(yàn)GPIO實(shí)驗(yàn)報(bào)告_第3頁(yè)
嵌入式技術(shù)及應(yīng)用實(shí)驗(yàn)GPIO實(shí)驗(yàn)報(bào)告_第4頁(yè)
嵌入式技術(shù)及應(yīng)用實(shí)驗(yàn)GPIO實(shí)驗(yàn)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩3頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

#院系:計(jì)算機(jī)科學(xué)學(xué)院專業(yè):自動(dòng)化年級(jí):11級(jí)學(xué)號(hào):11064029姓名:楊勝提指導(dǎo)教師:劉科2013年5月8日

年級(jí)11級(jí)班級(jí)11級(jí)自動(dòng)化一班學(xué)號(hào)11064029專業(yè)自動(dòng)化姓名楊勝提題目名稱實(shí)驗(yàn)、GPIO實(shí)驗(yàn)實(shí)驗(yàn)設(shè)計(jì)要求控制EduKit-M3實(shí)驗(yàn)平臺(tái)的發(fā)光二極管LED1、LED2、LED3、LED4,使它們有規(guī)律的點(diǎn)亮,具體順序如下:LED1亮->LED2亮->LED3亮->LED4亮,如此反復(fù),當(dāng)按下EduKit-M3實(shí)驗(yàn)平臺(tái)上的Key按鈕時(shí),燈全部熄滅,2秒鐘后發(fā)光二極管全部點(diǎn)亮,再過一秒鐘后返回被中斷前的狀態(tài),有規(guī)律的依次點(diǎn)亮。實(shí)驗(yàn)設(shè)計(jì)思路1、硬件電路設(shè)計(jì)在EduKit-M3實(shí)驗(yàn)平臺(tái)上,LED1、LED2、LED3、LED4分別與PC6、PC7、PC8、PC9相連,按鍵Key與PB9相連。2、軟件程序設(shè)計(jì)配置PB口第9個(gè)引腳作為外部中斷,下降延觸發(fā);讀取端口數(shù)據(jù)輸出寄存器GPIOC_ODR[15:0]的值,因?yàn)镃口[9:6H立和四個(gè)LED燈連通。初始化時(shí),LED依次點(diǎn)亮,當(dāng)按下Key鍵時(shí)產(chǎn)生中斷;中斷服務(wù)子程序內(nèi)容:燈全部熄滅,2秒鐘后發(fā)光二極管全部點(diǎn)亮,再過1秒鐘后中斷返回。整個(gè)工程包含3個(gè)源文件:STM32F10x.s、stm32f10x_it.c和main.c,其中STM32F10x.s為啟動(dòng)代碼,所有中斷服務(wù)子程序均在stm32f10x_it.c中,其它函數(shù)則在main.c中。實(shí)驗(yàn)步驟與結(jié)果分析運(yùn)行過程⑴使用KeiluVision3通過ULINK2仿真器連接EduKit-M3實(shí)驗(yàn)平臺(tái),打開實(shí)驗(yàn)例程目錄GPIO_TEST子目錄下的GPI0.Uv2例程,編譯鏈接工程;選擇軟件調(diào)試模式,點(diǎn)擊MDK的Debug菜單,選擇Start/StopDebugSession項(xiàng)或Ctrl+F5鍵,在邏輯分析儀中添加GPI0C_0DR.6、GPI0C_0DR.7、GPIOC_ODR.8、GPIOC_ODR.9,點(diǎn)擊Run按鈕即可在邏輯分析儀中看到如圖7-11;選擇硬件調(diào)試模式,選擇Start/StopDebugSession項(xiàng)或Ctrl+F5鍵,下載程序并運(yùn)行,觀察LED燈的變化情況;當(dāng)程序運(yùn)行在while循環(huán)體內(nèi)時(shí),按Key鍵,程序進(jìn)入中斷服務(wù)子程序EXTI9_5_IRQHandler(),單步運(yùn)行,觀察LED的變化情況。退出Debug模式,打開Flash菜單>Download,將程序下載到EduKit-M3實(shí)驗(yàn)平臺(tái)的Flash中,按RESET鍵復(fù)位,觀察LED燈的情況,正常情況應(yīng)如下。LED燈狀態(tài)1LED1LED2LED3LED4亮滅滅滅滅亮滅滅滅滅亮滅滅滅滅亮滅滅滅滅亮亮亮亮程序正常運(yùn)行,發(fā)光二極管依次點(diǎn)亮外部信號(hào)輸入,發(fā)生中斷,執(zhí)行中斷處理程序LED燈狀態(tài)2LED1LED2LED3LED4亮滅滅滅亮亮滅滅亮亮亮滅亮亮亮亮滅滅滅滅亮亮亮亮程序正常運(yùn)行,發(fā)光二極管依次點(diǎn)亮外部信號(hào)輸入,發(fā)生中斷,執(zhí)行中斷處理程序軟件程序設(shè)計(jì)1、配置PB口第9個(gè)引腳作為外部中斷,下降延觸發(fā);/*ConfigurePB9asinputfloating(EXTILine9)*/GPIO_InitStructure.GPIO_Pin=GPI0_Pin_9;〃引腳選擇GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;/輸入模式選擇GPIO_Init(GPIOB,&GPIO_InitStructure);2、讀取端口數(shù)據(jù)輸出寄存器GPIOC_ODR[15:0]的值,因?yàn)镃口[9:6H立和四個(gè)LED燈連通。方法一:/*ConfigurePC.asOutputpush-pull*/GPIO_InitStructure.GPIO_Pin=GPIO_Pin_6IGPIO_Pin_7IGPIO_Pin_8IGPIO_Pin_9;〃與LED燈連通的引腳選擇GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;〃設(shè)置輸出引腳的速度GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;主要程序代碼分析//設(shè)置輸出引腳的模式為推挽輸出模式主要程序代碼分析GPIO_Init(GPIOC,&GPIO_InitStructure);方法二:利用端口配置低寄存器(GPIOx-CRL)(x=A..E)和端口配置高寄存器(GPIOx-CRH)(x=A..E)GPIOC_CRL=Oxcc444444;GPIOC_CRH=Ox444444cc;521端口配置低寄存器(GPIOx_CRL)(x=A..E)偏移地址:0x00復(fù)位値:0x4444444431302928272625242322212019181716CNF7[l:0]MODE7[1:OZCNF6[l:0]MODESZ1:0ZCNF5[1:O]MODES[1:0:CNF4[1:0ZMODE4[1:OZrwrwrwrwFTrwrwrwrwrwrwrwrwrwrwrw1514131211109876543210CNF3[l:0]MODE3[1:OZCNF2[l:0ZM0DE2Z1:0ZCNFl;l:0ZM0DE1[1:0:CNF0[l:0ZMODEO[1:OZrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw3、初始化時(shí),LED依次點(diǎn)亮,當(dāng)按下Key鍵時(shí)產(chǎn)生中斷;/*ConfigureEXTILine9togenerateaninterruptonfallingedge*/EXTI_InitStructure.EXTI_Line=EXTI_Line9;EXTI_InitStructure.EXTI_Mode=EXTI_Mode_Interrupt;EXTIInitStructure.EXTITrigger=EXTITriggerFalling;

EXTI_InitStructure.EXTI_LineCmd=ENABLE;EXTI_Init(&EXTI_InitStructure);4、LED依次點(diǎn)亮的子程序for(;;){GPIO_ResetBits(GPIOC,GPIO_Pin_6IGPIO_Pin_7IGPIO_Pin_8IGPIO_Pin_9);GPI0_SetBits(GPI0C,GPI0_Pin_6);算法1地址偏移:OCh復(fù)位値:OOOOOOOOh3130292827262524232221201918171615141312111091514131211109876543210ODR15ODR14ODR130DR12ODR11ODR1O0Df?90DR8ODR70DR60DR50DR4ODR3ODR20DR1ODROrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw保留//1高16位保留,全為F,底16位相應(yīng)置高或GPIOC->ODR&=0xfffffc4f;置底/*Delay(800);GPIOC->ODR&=OxfffffcOf;GPIOC->ODR|=OxOOOOOccO;Delay(800);GPIOC->ODR&=OxfffffcOf;GPIOC->ODR|=OxOOOOOdcO;Delay(800);GPIOC->ODR&=OxfffffcOf;GPIOC->ODR|=OxOOOOOfcO;//2//3//4Delay(800);算法2GPIO_ResetBits(GPIOC,GPIO_Pin_6);〃使Pin_6置低Delay(800);GPIO_SetBits(GPIOC,GPIO_Pin_6);〃使Pin_6置高Delay(100);GPIO_ResetBits(GPIOC,GPIO_Pin_7);Delay(800);GPIO_SetBits(GPIOC,GPIO_Pin_7);Delay(100);GPIO_ResetBits(GPIOC,GPIO_Pin_8);Delay(800);GPIO_SetBits(GPIOC,GPIO_Pin_8);Delay(100);GPIO_ResetBits(GPIOC,GPIO_Pin_9);Delay(800);

GPI0_SetBits(GPI0C,GPI0_Pin_9);Delay(lOO);}//Tabk193.函數(shù)GPIOSetBits函數(shù)名GPIOSetBiTs函數(shù)原形voidGPIOSetBits(GPIOTypeDePGPIOx.ul6GPIOPm)功能描述設(shè)置指定的數(shù)據(jù)端口位輸入?yún)?shù)1GPIOxt孟可以是A,B,C,D或者E,來選擇GPIO外設(shè)輸入?yún)?shù)2GPIO_Pin:待設(shè)置的端口位該參城可以取GPIO_Pin」仗可以是0-15)的任意組合參閱Section;GPIO_Pm作閱史參仮參數(shù)允許取值范圍T訪b194,函數(shù)GPIORm討B(tài)i怙函數(shù)名GPIOResetBirs函數(shù)原形voidGPIO-ResetBifstGPIO-

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論