国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【STM32嵌入式系統(tǒng)設(shè)計(jì)與開發(fā)】——7有源蜂鳴器應(yīng)用

這篇具有很好參考價(jià)值的文章主要介紹了【STM32嵌入式系統(tǒng)設(shè)計(jì)與開發(fā)】——7有源蜂鳴器應(yīng)用。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。


STM32資料包:
百度網(wǎng)盤下載鏈接:鏈接:https://pan.baidu.com/s/1mWx9Asaipk-2z9HY17wYXQ?pwd=8888
提取碼:8888


一、任務(wù)描述

【STM32嵌入式系統(tǒng)設(shè)計(jì)與開發(fā)】——7有源蜂鳴器應(yīng)用,嵌入式單片機(jī)STM32,stm32

二、任務(wù)實(shí)施

觀察電路圖,核心板PD14連接底板中的P2外接排針,將正負(fù)極接上直流電壓即可持續(xù)發(fā)聲,頻率固定。LED的PA0連接底板的D1燈。
【STM32嵌入式系統(tǒng)設(shè)計(jì)與開發(fā)】——7有源蜂鳴器應(yīng)用,嵌入式單片機(jī)STM32,stm32

1、ActiveBeep工程文件夾創(chuàng)建

步驟1:復(fù)制工程模板“1_Template”重命名為“4_ActiveBeep”
【STM32嵌入式系統(tǒng)設(shè)計(jì)與開發(fā)】——7有源蜂鳴器應(yīng)用,嵌入式單片機(jī)STM32,stm32

步驟2:修改項(xiàng)目工程名,先刪除projects文件夾內(nèi)除了Template.uvprojx文件外的所有內(nèi)容并修改為“ActiveBeep.uvprojx”。并刪除output/obj和output/lst中的所有文件。
【STM32嵌入式系統(tǒng)設(shè)計(jì)與開發(fā)】——7有源蜂鳴器應(yīng)用,嵌入式單片機(jī)STM32,stm32
步驟3:運(yùn)行“ActiveBeep.uvprojx”打開目標(biāo)選項(xiàng)“Options for Target”中的“Output”輸出文件,并修改可執(zhí)行文件名稱為“ActiveBeep”點(diǎn)擊“OK”保存設(shè)置。最后點(diǎn)擊“Rebuild”編譯該工程生成ActiveBeep文件。
【STM32嵌入式系統(tǒng)設(shè)計(jì)與開發(fā)】——7有源蜂鳴器應(yīng)用,嵌入式單片機(jī)STM32,stm32

步驟4:復(fù)制“2_LEDTest”中的"1_LED"文件復(fù)制到hardware中。
【STM32嵌入式系統(tǒng)設(shè)計(jì)與開發(fā)】——7有源蜂鳴器應(yīng)用,嵌入式單片機(jī)STM32,stm32

步驟5:新建“2_ActiveBeep”文件,并在該文件夾下新建“ActiveBeep.c”和“ActiveBeep.h”兩個(gè)文件。
【STM32嵌入式系統(tǒng)設(shè)計(jì)與開發(fā)】——7有源蜂鳴器應(yīng)用,嵌入式單片機(jī)STM32,stm32

步驟6:工程組文件中添加“l(fā)ed.c”和“ActiveBeep.c”文件。
【STM32嵌入式系統(tǒng)設(shè)計(jì)與開發(fā)】——7有源蜂鳴器應(yīng)用,嵌入式單片機(jī)STM32,stm32

步驟7:目標(biāo)選項(xiàng)添加添加頭文件路徑
【STM32嵌入式系統(tǒng)設(shè)計(jì)與開發(fā)】——7有源蜂鳴器應(yīng)用,嵌入式單片機(jī)STM32,stm32

2、函數(shù)編輯

(1)主函數(shù)編輯

控制蜂鳴器和 LED,每次循環(huán)時(shí)蜂鳴器和 LED 的狀態(tài)會交替改變,并且每次循環(huán)時(shí)延遲的時(shí)間會逐漸增加,直到 temp 達(dá)到 200,然后重新從 10 開始。這樣就會產(chǎn)生一種周期性變化的效果,蜂鳴器和 LED 會以不同的頻率閃爍。
【STM32嵌入式系統(tǒng)設(shè)計(jì)與開發(fā)】——7有源蜂鳴器應(yīng)用,嵌入式單片機(jī)STM32,stm32
步驟1:端口初始化準(zhǔn)備

	//函數(shù)初始化,端口準(zhǔn)備
	delay_init(); //啟動(dòng)滴答定時(shí)器
	LED_Init();   //LED初始化
	BeepInit();   //有源蜂鳴器初始化

【STM32嵌入式系統(tǒng)設(shè)計(jì)與開發(fā)】——7有源蜂鳴器應(yīng)用,嵌入式單片機(jī)STM32,stm32
步驟2:循環(huán)時(shí)延遲的時(shí)間會逐漸增加,直到 temp 達(dá)到 200,然后重新從 10 開始。這樣就會產(chǎn)生一種周期性變化的效果,蜂鳴器和 LED 會以不同的頻率閃爍。

	while(1)
	{	 										
		delay_ms(temp);// 延遲temp毫秒
		temp += 100;    // 增加延遲時(shí)間10毫秒
		
		beep = !beep;  // 切換蜂鳴器狀態(tài)(取反)
		LED1 = !LED1;    // 切換LED狀態(tài)(取反)
		
		if(temp == 2000)// 如果延遲時(shí)間達(dá)到200毫秒,則重置為10毫秒
				temp = 100;
	}

【STM32嵌入式系統(tǒng)設(shè)計(jì)與開發(fā)】——7有源蜂鳴器應(yīng)用,嵌入式單片機(jī)STM32,stm32

(2)LED IO初始化函數(shù)(LED_Init())

/*********************************************************************
 @Function  : 開發(fā)板LED IO初始化
 @Parameter : N/A 
 @Return    : N/A
**********************************************************************/
void ExpLEDInit(void)
{
    GPIO_InitTypeDef GPIO_InitStructure; // 定義 GPIO 初始化結(jié)構(gòu)體變量
    
    /* 時(shí)鐘使能 */	
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); // 使能 GPIOA 時(shí)鐘
    
    /* 引腳配置 */	
    GPIO_InitStructure.GPIO_Pin = LED_ALL; // D1-D8->PA0-PA7 
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; // 設(shè)置引腳為推挽輸出
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; // 設(shè)置引腳的輸出速度為 50MHz
    GPIO_Init(GPIOA, &GPIO_InitStructure); // 應(yīng)用以上配置到 GPIOA 上
    
    GPIO_SetBits(GPIOA, LED_ALL); // 將 GPIOA 的引腳 PA0-PA7 設(shè)置為高電平,使得開發(fā)板 LED 滅
}

【STM32嵌入式系統(tǒng)設(shè)計(jì)與開發(fā)】——7有源蜂鳴器應(yīng)用,嵌入式單片機(jī)STM32,stm32

(3)蜂鳴器 IO初始化(BeepInit())

初始化PD14端口,并為推挽輸出。

/*********************************************************************
 @Function  : 開發(fā)板蜂鳴器 IO初始化
 @Parameter : None 
 @Return    : None
**********************************************************************/
void BeepInit(void)
{
 	GPIO_InitTypeDef  GPIO_InitStructure;
	
	/*時(shí)鐘使能*/
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD,ENABLE);
	
	/*引腳配置*/
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_14;       // 將開發(fā)板四個(gè)按鍵連接到PE8~PE15
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//設(shè)置 GPIO 輸出速度為 50MHz
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽輸出		 
    GPIO_Init(GPIOD, &GPIO_InitStructure);	
	
	/*引腳初始電平設(shè)置*/
	GPIO_SetBits(GPIOD,GPIO_Pin_14);
}

【STM32嵌入式系統(tǒng)設(shè)計(jì)與開發(fā)】——7有源蜂鳴器應(yīng)用,嵌入式單片機(jī)STM32,stm32

3、宏定義

(1)源文件添加頭文件

步驟1:按鍵功能文件中添加相關(guān)頭文件,源文件報(bào)錯(cuò)消失部分

#include "stm32f10x_gpio.h"
#include "stm32f10x_rcc.h"
#include "ActiveBeep.h"

【STM32嵌入式系統(tǒng)設(shè)計(jì)與開發(fā)】——7有源蜂鳴器應(yīng)用,嵌入式單片機(jī)STM32,stm32
步驟2:主函數(shù)添加所需的led和KeyBoard頭文件,主源文件部分報(bào)錯(cuò)消失

/***********Hardweare***************/
#include "led.h"
#include "ActiveBeep.h"

【STM32嵌入式系統(tǒng)設(shè)計(jì)與開發(fā)】——7有源蜂鳴器應(yīng)用,嵌入式單片機(jī)STM32,stm32

(2)有源蜂鳴器頭文件編輯

點(diǎn)擊編譯顯示報(bào)錯(cuò)
【STM32嵌入式系統(tǒng)設(shè)計(jì)與開發(fā)】——7有源蜂鳴器應(yīng)用,嵌入式單片機(jī)STM32,stm32
步驟1:創(chuàng)建一個(gè)宏定義保護(hù)

#ifndef _SINGLEKEY_H
#define _SINGLEKEY_H





#endif

【STM32嵌入式系統(tǒng)設(shè)計(jì)與開發(fā)】——7有源蜂鳴器應(yīng)用,嵌入式單片機(jī)STM32,stm32
步驟2:添加宏定義

#define beep PDout(14)   // 定義了一個(gè)宏,用于操作PD14引腳的輸出狀態(tài),此處假設(shè)使用的是外部定義的函數(shù)或宏

【STM32嵌入式系統(tǒng)設(shè)計(jì)與開發(fā)】——7有源蜂鳴器應(yīng)用,嵌入式單片機(jī)STM32,stm32
步驟3:添加led宏定義

#define LED_ALL GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 |GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7

【STM32嵌入式系統(tǒng)設(shè)計(jì)與開發(fā)】——7有源蜂鳴器應(yīng)用,嵌入式單片機(jī)STM32,stm32
步驟3:添加函數(shù)聲明

void BeepInit(void);     // 函數(shù)聲明,用于初始化蜂鳴器

【STM32嵌入式系統(tǒng)設(shè)計(jì)與開發(fā)】——7有源蜂鳴器應(yīng)用,嵌入式單片機(jī)STM32,stm32

步驟4:添加數(shù)據(jù)類型和宏的頭文件

#include "stdint.h"      // 包含標(biāo)準(zhǔn)的C語言頭文件,用于定義標(biāo)準(zhǔn)的整數(shù)類型

【STM32嵌入式系統(tǒng)設(shè)計(jì)與開發(fā)】——7有源蜂鳴器應(yīng)用,嵌入式單片機(jī)STM32,stm32

4、知識鏈接

(1)有源蜂鳴器

蜂鳴器是一種能將音頻信號轉(zhuǎn)化聲音信號的發(fā)音器件,在家電器上,在銀行、公安的報(bào)警系統(tǒng)中,在電子玩具、游戲機(jī)中都得到普遍應(yīng)用。蜂鳴器是一種能將音頻信號轉(zhuǎn)化聲音信號的發(fā)音器件,在家電器上,在銀行、公安的報(bào)警系統(tǒng)中,在電子玩具、游戲機(jī)中都得到普遍應(yīng)用。蜂鳴器主要用于提示或報(bào)警,根據(jù)設(shè)計(jì)和用途的不同,能發(fā)出音樂聲、汽笛聲、蜂鳴聲、報(bào)警聲、聲鈴聲等各種不同的聲音。

   內(nèi)部自帶振蕩源,將正負(fù)極接上直流電壓即可持續(xù)發(fā)聲,頻率固定。

【STM32嵌入式系統(tǒng)設(shè)計(jì)與開發(fā)】——7有源蜂鳴器應(yīng)用,嵌入式單片機(jī)STM32,stm32

(2)無源蜂鳴器

   內(nèi)部不帶振蕩源,需要控制器提供振蕩脈沖才可發(fā)聲,調(diào)整提供振蕩脈沖的頻率,可發(fā)出不同頻率的聲音

【STM32嵌入式系統(tǒng)設(shè)計(jì)與開發(fā)】——7有源蜂鳴器應(yīng)用,嵌入式單片機(jī)STM32,stm32

5、工程測試

【STM32嵌入式系統(tǒng)設(shè)計(jì)與開發(fā)】——7有源蜂鳴器應(yīng)用,嵌入式單片機(jī)STM32,stm32文章來源地址http://www.zghlxwxcb.cn/news/detail-841971.html

到了這里,關(guān)于【STM32嵌入式系統(tǒng)設(shè)計(jì)與開發(fā)】——7有源蜂鳴器應(yīng)用的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包