嵌入式系統(tǒng)原理實驗五按鍵實驗_第1頁
嵌入式系統(tǒng)原理實驗五按鍵實驗_第2頁
嵌入式系統(tǒng)原理實驗五按鍵實驗_第3頁
嵌入式系統(tǒng)原理實驗五按鍵實驗_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

實驗五按鍵輸入實驗實驗?zāi)康?利用板載的4個按鍵,來控制板載的兩個LED的亮滅和蜂鳴器的開關(guān)。通過本實驗,將了解到STM32F1的IO口作為輸入口的使用方法。內(nèi)容要點.1.STM32IO口簡介STM32F1的IO口在上一章巳經(jīng)有了比較詳細(xì)的介紹,這里我們不再多說。STM32F1的IO口做輸入使用的時候,是通過調(diào)用函數(shù)GPIO_ReadInputDataBit()來讀取IO口的狀態(tài)的。了解了這點,就可以開始我們的代碼編寫了。這一個實驗,我們將通過ALIENTEK戰(zhàn)艦STM32開發(fā)板上載有的4個按鈕(WK_UP、KEY0、KEY1和KEY2),來控制板上的2個LED(DS0和DS1)和蜂鳴器,其中WK_UP控制蜂鳴器,按一次叫,再按一次停;KEY2控制DS0,按一次亮,再按一次滅;KEY1控制DS1,效果同KEY2;KEY0則同時控制DS0和DS1,按一次,他們的狀態(tài)就翻轉(zhuǎn)一次。有源蜂鳴器自帶了震蕩電路,一通電就會發(fā)聲2.硬件設(shè)計本實驗用到的硬件資源有:指示燈DS0、DS14個按鍵:KEY0、KEY1、KEY2、和WK_UP。DS0、DS1以及蜂鳴器和STM32的連接在上兩章都巳經(jīng)分別介紹了,在戰(zhàn)艦STM32開發(fā))PE2 |kEY212PENKEY113)PE2 |kEY212PENKEY113PE4SEYO,PE2'TRACECKTSMCA23PE3TRACED0TSMC_A1。PE4TRACEDIFS\TC~A20KEY1連接在PE3上、KEY2連接在PE2上、WK_UP連接在PA0按鍵與STM32連接原理圖這里需要注意的是:KEY0、KEY1和KEY2是低電平有效的,而WK_UP是高電平有效的,并且外部都沒有上下拉電阻,所以,需要在STM32內(nèi)部設(shè)置上下拉。3.軟件設(shè)計key.h#ifndefKEYH#define__KEY_H#include"sys.h”#defineKEY0GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_4)〃讀取按鍵0#defineKEY1GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_3)〃讀取按鍵1#defineKEY2GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_2)〃讀取按鍵2#defineWK_UPGPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0)//讀取按鍵3(WK_UP)#defineKEY0_PRES1//KEY0按下#defineKEY1_PRES2//KEY1按下#defineKEY2_PRES3//KEY2按下#defineWKUP_PRES4//WK_UP按下(即WK_UP/WK_UP)voidKEY_Init(void);//IO初始化u8KEY_Scan(u8);〃按鍵掃描函數(shù)#endif這段代碼里面最關(guān)鍵就是4個宏定義:#defineKEY0GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_4)〃讀取按鍵0#defineKEY1GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_3)〃讀取按鍵1#defineKEY2GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_2)〃讀取按鍵2#defineWK_UPGPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0)〃讀取按鍵3(WK_UP)然后我們打開USER文件夾Template.uvprojx,按新建按鈕新建一個文件,然后保存在HARDWARE->BEEP文件夾下面,保存為key.G在該文件中輸入如下代碼:#include"stm32f10x.h”#include"key.h”#include"sys.h”#include"delay.h"voidKEY_Init(void){GPIO_InitTypeDefGPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOE,ENABLE);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4;//KEY0-KEY2GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU;//設(shè)置成上拉輸入GPIO_Init(GPIOE,&GPIO_InitStructure);//初始化PE4,PE3,PE2GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPD;//設(shè)置成下拉輸入GPIO_Init(GPIOA,&GPIO_InitStructure);//初始化PA0}u8KEY_Scan(u8mode){staticu8key_up=1;if(mode)key_up=1;if(key_up&&(KEY0==0||KEY1==0)){delay_ms(10);key_up=0;if(KEY0==0)returnKEY0_PRES;elseif(KEY1==0)returnKEY1_PRES;}elseif(KEY0==1&&KEY1==1)key_up=1;return0;}led.h#ifndef__LED_H#define__LED_H#include"sys.h”#defineLED0PBout(5)#defineLED1PEout(5)voidLED_Init(void);#endifled.c#include"led.h"#include"stm32f10x.h”voidLED_Init(void){GPIO_InitTypeDefGPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE,ENABLE);GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Pin=GPIO_Pin_5;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOB,&GPIO_InitStructure);GPIO_SetBits(GPIOB,GPIO_Pin_5);GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Pin=GPIO_Pin_5;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOE,&GPIO_InitStructure);GPIO_SetBits(GPIOE,GPIO_Pin_5);}main.c#include"led.h”#include"delay.h"#include"key.h”#include"sys.h”intmain(void){vu8key=0;delay_init();LED_Init();KEY_Init();while(1){key=KEY_Scan(0);if(key){switch(key)caseKEY1_PRES:LED1=!LED1;break;caseKEY0_PRES:LED0=!LED0;LED1=!LED1;break;}elsedelay_ms(10);}}實驗現(xiàn)象

溫馨提示

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

最新文檔

評論

0/150

提交評論