STM32F103ZET6 蜂鸣器、按键
生活随笔
收集整理的這篇文章主要介紹了
STM32F103ZET6 蜂鸣器、按键
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
蜂鳴器的硬件電路:
蜂鳴器實(shí)驗(yàn)步驟:
實(shí)驗(yàn)步驟基本和跑馬燈一樣,代碼和跑馬燈也基本一樣,只是用的GPIO不同。
幾種輸入輸出模式:
beep.c部分代碼:
#include "beep.h" #include "stm32f10x.h"void BEEP_Init(void) {GPIO_InitTypeDef GPIO_InitLed;//定義GPIO_InitTypeDef類型的結(jié)構(gòu)體RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);//使能GPIOB的時(shí)鐘GPIO_InitLed.GPIO_Mode=GPIO_Mode_Out_PP;GPIO_InitLed.GPIO_Pin=GPIO_Pin_8;GPIO_InitLed.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOB,&GPIO_InitLed);GPIO_ResetBits(GPIOB,GPIO_Pin_8); }beep.h部分代碼:
#ifndef _BEEP_H #define _BEEP_Hvoid BEEP_Init(void); #endifmain.c部分代碼:
#include "stm32f10x.h" #include "beep.h" #include "delay.h" int main(void) { delay_init();BEEP_Init();while(1){GPIO_SetBits(GPIOB,GPIO_Pin_8);/高電平響delay_ms(500);GPIO_ResetBits(GPIOB,GPIO_Pin_8);//低電平不響delay_ms(500);} }按鍵部分代碼:
主要是這個(gè)函數(shù),通過(guò)設(shè)置靜態(tài)變量來(lái)實(shí)現(xiàn)按鍵是否支持連按,若mode=0則不支持連按,就相當(dāng)于開關(guān),若mode=1則支持連按,就是若按鍵不松開則if中就會(huì)一直返回?cái)?shù)值。
u8 KEY_Scan(u8 mode) { static u8 key_up=1;//按鍵按松開標(biāo)志if(mode)key_up=1; //支持連按 if(key_up&&(KEY0==0||KEY1==0||KEY2==0||WK_UP==1)){delay_ms(100);//去抖動(dòng) key_up=0;if(KEY0==0)return KEY0_PRES;else if(KEY1==0)return KEY1_PRES;else if(KEY2==0)return KEY2_PRES;else if(WK_UP==1)return WKUP_PRES;}else if(KEY0==1&&KEY1==1&&KEY2==1&&WK_UP==0)key_up=1; return 0;// 無(wú)按鍵按下 }總結(jié)
以上是生活随笔為你收集整理的STM32F103ZET6 蜂鸣器、按键的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 如何通过IDEA看Java源码
- 下一篇: java学习(94):cpu随机调用线程