下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
實(shí)驗(yàn)五按鍵輸入實(shí)驗(yàn)實(shí)驗(yàn)?zāi)康?利用板載的4個(gè)按鍵,來控制板載的兩個(gè)LED的亮滅和蜂鳴器的開關(guān)。通過本實(shí)驗(yàn),將了解到STM32F1的IO口作為輸入口的使用方法。內(nèi)容要點(diǎn).1.STM32IO口簡(jiǎn)介STM32F1的IO口在上一章巳經(jīng)有了比較詳細(xì)的介紹,這里我們不再多說。STM32F1的IO口做輸入使用的時(shí)候,是通過調(diào)用函數(shù)GPIO_ReadInputDataBit()來讀取IO口的狀態(tài)的。了解了這點(diǎn),就可以開始我們的代碼編寫了。這一個(gè)實(shí)驗(yàn),我們將通過ALIENTEK戰(zhàn)艦STM32開發(fā)板上載有的4個(gè)按鈕(WK_UP、KEY0、KEY1和KEY2),來控制板上的2個(gè)LED(DS0和DS1)和蜂鳴器,其中WK_UP控制蜂鳴器,按一次叫,再按一次停;KEY2控制DS0,按一次亮,再按一次滅;KEY1控制DS1,效果同KEY2;KEY0則同時(shí)控制DS0和DS1,按一次,他們的狀態(tài)就翻轉(zhuǎn)一次。有源蜂鳴器自帶了震蕩電路,一通電就會(huì)發(fā)聲2.硬件設(shè)計(jì)本實(shí)驗(yàn)用到的硬件資源有:指示燈DS0、DS14個(gè)按鍵: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è)計(jì)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個(gè)宏定義:#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,按新建按鈕新建一個(gè)文件,然后保存在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);}}實(shí)驗(yàn)現(xiàn)象
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 【名師一號(hào)】2020-2021學(xué)年北師大版高中數(shù)學(xué)必修3雙基限時(shí)練15
- 【全程復(fù)習(xí)方略】2020年高考政治一輪課時(shí)提升作業(yè)-必修1-第2課(廣東專供)
- 《產(chǎn)業(yè)發(fā)展報(bào)告》課件
- 【同步輔導(dǎo)】2021高中數(shù)學(xué)北師大版必修二導(dǎo)學(xué)案:《直線和圓的位置關(guān)系》
- 一本正經(jīng)造句三年級(jí)簡(jiǎn)單
- 2022中考分類試題29選擇填空
- 大學(xué)英語聽力
- 2025年0278南京搜貓數(shù)據(jù)技術(shù)有限公司
- 2025年0045廣東大倉機(jī)器人科技有限公司
- 【案例6-3】胡潤(rùn)富豪榜順勢(shì)而生
- 2024抗菌藥物分級(jí)管理及臨床合理應(yīng)用考核試題及答案
- 儲(chǔ)能系統(tǒng)的應(yīng)急預(yù)案措施
- 論海瀾之家存貨管理的問題、成因及其對(duì)策
- 醫(yī)院長(zhǎng)期醫(yī)囑單(模板)
- 班主任育人故事(通用17篇)
- 初二化學(xué)上冊(cè)知識(shí)點(diǎn)7篇
- 汽車保養(yǎng)與維護(hù)
- 2023-2024學(xué)年貴州省黔西南布依族苗族自治州貞豐縣三年級(jí)數(shù)學(xué)第一學(xué)期期末經(jīng)典模擬試題含答案
- 娛樂場(chǎng)所消防安全操作規(guī)程
- 社區(qū)服務(wù)中心
- 商業(yè)天然氣灶具用氣量明細(xì)
評(píng)論
0/150
提交評(píng)論