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

(五)STM32基礎(chǔ)——基于庫(kù)函數(shù)的蜂鳴器

這篇具有很好參考價(jià)值的文章主要介紹了(五)STM32基礎(chǔ)——基于庫(kù)函數(shù)的蜂鳴器。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

????????上節(jié)我們介紹了一下如何點(diǎn)亮LED燈,寫好了我們的第一個(gè)代碼,接下來(lái),我們就來(lái)編寫一下蜂鳴器的程序,其實(shí)蜂鳴器的代碼與LED燈極其相似,所以如果如果理解了之前的代碼,蜂鳴器的代碼也能輕易了解。


????????首先,我們要來(lái)了解一下三極管的知識(shí),因?yàn)槲覀兊姆澍Q器用到了三極管來(lái)控制,起到放大電壓的作用。

(五)STM32基礎(chǔ)——基于庫(kù)函數(shù)的蜂鳴器

????????在三極管電路中,當(dāng)輸人為低電平,三極管處于截止?fàn)顟B(tài),輸出為高電平。當(dāng)輸人為高電平,三極管處于飽和導(dǎo)通狀態(tài),輸出為低電平。所以蜂鳴器在輸入為0的不響,在輸入為1的時(shí)候才響。

電路下面那個(gè)電阻是起到下拉的作用,防止浮空狀態(tài)時(shí)產(chǎn)生的小電流使得蜂鳴器誤響。

? ? ? ? 然后我們要初始化我們的LED燈和蜂鳴器,這個(gè)地方,我們選擇推挽輸出,因?yàn)檫@樣高低電平都有驅(qū)動(dòng)能力,并且選擇下拉輸入,因?yàn)闉榱朔乐狗澍Q器一開始就亂叫不停。接下來(lái)我們就來(lái)看一下代碼吧。

#include "stm32f4xx.h"

void BEEP_Init(void)
{   
    GPIO_InitTypeDef  GPIO_InitStructure;
	// 定義一個(gè)結(jié)構(gòu)體
    RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF, ENABLE);
    // 使能GPIO時(shí)鐘
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;
	// 蜂鳴器的引腳
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
	// 輸出模式
    GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
	// 推挽輸出
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
	//100MHz
    GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_DOWN;
	// 選擇下拉輸入
    GPIO_Init(GPIOF, &GPIO_InitStructure);
	// GPIO 初始化
    GPIO_ResetBits(GPIOF,GPIO_Pin_8);  
	// 初始化GPIO_Pin_8
}

接下來(lái),我們來(lái)看看主程序。

#include "stm32f4xx.h"
#include "delay.h"
#include "led.h"
#include "beep.h"


int main(void)
{ 
 
	delay_init(168);	// 初始化延時(shí)函數(shù) 	   
	LED_Init();			// 初始化LED    
	BEEP_Init();        //	初始化蜂鳴器
	
	while(1)
	{ 
		GPIO_ResetBits(GPIOF,GPIO_Pin_9); // 置為0,LED亮
		GPIO_ResetBits(GPIOF,GPIO_Pin_8); // 置為0,蜂鳴器不響
		delay_ms(100);                    // 延時(shí)
		GPIO_SetBits(GPIOF,GPIO_Pin_9);   // 置為1,LED滅
		GPIO_SetBits(GPIOF,GPIO_Pin_8);   // 置為1,蜂鳴器響
		delay_ms(100); 					  // 延時(shí)	
		GPIO_ResetBits(GPIOF,GPIO_Pin_9); // 置為0,LED亮
		GPIO_ResetBits(GPIOF,GPIO_Pin_8); // 置為0,蜂鳴器不響
		delay_ms(700);                    // 延時(shí)
		GPIO_SetBits(GPIOF,GPIO_Pin_9);   // 置為1,LED滅
		GPIO_SetBits(GPIOF,GPIO_Pin_8);   // 置為1,蜂鳴器響
		delay_ms(100); 				
	}
}

因?yàn)長(zhǎng)ED燈介紹如下。

???上節(jié)我們淺介紹了一下GPIO的工作模式,接下來(lái),我們就來(lái)編寫一下跑馬燈程序。51單片機(jī)也是從點(diǎn)LED燈開始的,所以STM32也從點(diǎn)LED燈開始吧,但遺憾的是,我的這塊開發(fā)板好像只有兩個(gè)LED燈,但問(wèn)題不大,我們就從點(diǎn)亮這兩個(gè)LED燈開始我們的學(xué)習(xí)。


????????首先,我們要先初始化我們的LED燈,這個(gè)地方,我們選擇推挽輸出,因?yàn)檫@樣高低電平都有驅(qū)動(dòng)能力。接下來(lái)我們就來(lái)看一下代碼吧。

//  LED.c 的 代碼
#include "stm32f4xx.h"

void LED_Init(void)
{
	GPIO_InitTypeDef  GPIO_InitStructure;
	// 定義一個(gè)結(jié)構(gòu)體
	RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF, ENABLE);
	// 使能GPIO時(shí)鐘
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
	// 輸出模式
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9 |GPIO_Pin_10;
	// LED0和LED1的引腳
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz ;
	// 輸出速度選擇50HZ
	GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
	// 推挽輸出
	GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
	// 選擇上拉模式
	GPIO_Init(GPIOF, &GPIO_InitStructure);
	// GPIO 初始化
	GPIO_SetBits(GPIOF, GPIO_Pin_9 |GPIO_Pin_10);
	// 初始化GPIO_Pin_9	和 GPIO_Pin_10
}

????????這個(gè)地方用到了C語(yǔ)言的結(jié)構(gòu)體,指針和枚舉相應(yīng)的知識(shí),如果這部分知識(shí)不太清楚的同學(xué),可以先去學(xué)習(xí)一下。

接下來(lái)我來(lái)介紹一下這段代碼是如何寫出來(lái)的吧!

????????????????第一步定義了一個(gè)結(jié)構(gòu)體,定義出來(lái)的那個(gè)結(jié)構(gòu)體的名字其實(shí)可以任意的,但是這應(yīng)該是有統(tǒng)一的約定俗成,我們就按照這個(gè)來(lái)。

????????第二步,?使能GPIO時(shí)鐘,就是你需要用哪個(gè)GPIO你就要去使能他的GPIO時(shí)鐘,具體參數(shù)怎么填呢?

第一個(gè)參數(shù)就是使用的GFIO,第二個(gè),填寫使能(ENABLE),就完成了使能GPIO時(shí)鐘這一步操作。

????????第三步,選擇輸出模式,后面的其實(shí)不需要去記憶,我們先右鍵進(jìn)入這個(gè)結(jié)構(gòu)成員,再進(jìn)入@ref后面的那個(gè)東西(選中之后Ctrl + F也可以),選擇查找,之后就能看到他的枚舉了,選擇我們需要的GPIO_Mode_OUT,復(fù)制粘貼到等號(hào)左邊,就成功了。后面的代碼都是這樣的,唯一要注意的就是,“GPIO_Pin_9 |GPIO_Pin_10;”說(shuō)明我們同時(shí)選擇了兩個(gè)IO口。

(五)STM32基礎(chǔ)——基于庫(kù)函數(shù)的蜂鳴器

?(五)STM32基礎(chǔ)——基于庫(kù)函數(shù)的蜂鳴器

(五)STM32基礎(chǔ)——基于庫(kù)函數(shù)的蜂鳴器

接下來(lái),我們來(lái)看看主程序。

#include "stm32f4xx.h"
#include "LED.h"
#include "delay.h"
int main (void)
	
{
delay_init(168);  // 初始化延時(shí)函數(shù)
	LED_Init();     // 初始化LED
	while(1)
	{
		GPIO_SetBits(GPIOF, GPIO_Pin_9);    // 置為1,滅
	    delay_ms(500);
		GPIO_ResetBits(GPIOF, GPIO_Pin_9);    // 置為0,亮

		GPIO_SetBits(GPIOF, GPIO_Pin_10);    // 置為1,滅
	    delay_ms(500);
		GPIO_ResetBits(GPIOF, GPIO_Pin_10);    // 置為0,亮

	}
}

運(yùn)行效果如下所示:文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-419347.html

到了這里,關(guān)于(五)STM32基礎(chǔ)——基于庫(kù)函數(shù)的蜂鳴器的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 基于STM32CubeMX與keil采用按鍵外部中斷方式控制LED與蜂鳴器

    基于STM32CubeMX與keil采用按鍵外部中斷方式控制LED與蜂鳴器

    這篇文章詳細(xì)記錄外部中斷方式控制LED的亮滅以及蜂鳴器的開關(guān);本文從原理圖開始到最后實(shí)現(xiàn)功能,內(nèi)容詳細(xì)。 本欄目的所有都是基于STM32F407ZET6芯片,博主采用的是普中的天馬F407開發(fā)板。 實(shí)現(xiàn)功能:LED0與LED1默認(rèn)熄滅,蜂鳴器默認(rèn)關(guān)閉。按下按鍵KEY0,控LED0亮滅;按下按

    2024年02月16日
    瀏覽(23)
  • 基于RT-Thread+STM32F407的蜂鳴器音樂(lè)播放器

    基于RT-Thread+STM32F407的蜂鳴器音樂(lè)播放器

    本項(xiàng)目為RT-Thread學(xué)習(xí)項(xiàng)目,參考于RT-Thread官網(wǎng)Demo示例 硬件基于STM32F407ZGT6正點(diǎn)原子探索者開發(fā)板+無(wú)源蜂鳴器模塊 RTOS軟件基于RT-Thread 4.0.5版本 編譯器為官方的提供的RT-Thread Studio 會(huì)使用到STM32CubeMX 配置產(chǎn)生PWM波 會(huì)使用MobaXterm串口終端軟件查看串口終端數(shù)據(jù) 官網(wǎng)Demo示例網(wǎng)址:

    2024年02月02日
    瀏覽(48)
  • STM32——有源蜂鳴器模塊

    STM32——有源蜂鳴器模塊

    ? ? ? ? 蜂鳴器模塊在一個(gè)單片機(jī)項(xiàng)目中同樣不可或缺,可能這篇文章對(duì)大多數(shù)人幫助并不大,但對(duì)剛剛?cè)腴T的同學(xué)快速上手蜂鳴器模塊應(yīng)該有所幫助。 ? ? ? ?有源蜂鳴器模塊,與無(wú)源蜂鳴器模塊最大的區(qū)別是其內(nèi)部已經(jīng)包含振蕩器,只要輸入高低電平,就能控制蜂鳴器的

    2024年04月25日
    瀏覽(114)
  • STM32實(shí)戰(zhàn)-無(wú)源蜂鳴器

    STM32實(shí)戰(zhàn)-無(wú)源蜂鳴器

    前言: 主要通過(guò)無(wú)源蜂鳴器實(shí)現(xiàn)功能有: 1、上電后,無(wú)源蜂鳴器發(fā)出警報(bào)聲; 2、通過(guò)觸摸按鍵1打開或關(guān)閉蜂鳴器; 目錄 ?1、硬件電路部分 2、技術(shù)講解? 2.1通用定時(shí)器(TIMx)? 2.2主要特性? ?2.3框圖 3.軟件編程? 3.1參數(shù)配置? 3.2程序框架? 3.3蜂鳴器函數(shù)? 3.4回調(diào)函數(shù) ? ?

    2024年02月04日
    瀏覽(21)
  • 【STM32】GPIO之蜂鳴器

    文章目錄 00. 目錄 01. 蜂鳴器簡(jiǎn)介 02. 硬件設(shè)計(jì) 03. 程序示例一 04. 程序示例二 05. 程序?qū)嵗?06. 附錄 07. 聲明

    2024年02月06日
    瀏覽(20)
  • STM32蜂鳴器播放音樂(lè)(代碼全)

    在STM32F103ZET6板子上使用蜂鳴器播放音樂(lè),我們可以將其分為幾個(gè)模塊:初始化模塊、蜂鳴器控制模塊、音樂(lè)播放模塊和主函數(shù)模塊。以下是一個(gè)簡(jiǎn)單的示例代碼,使用STM32 HAL庫(kù)和定時(shí)器來(lái)驅(qū)動(dòng)蜂鳴器播放音樂(lè)。 首先,確保你已經(jīng)配置了STM32CubeMX或STM32CubeIDE,并生成了HAL庫(kù)代碼

    2024年04月25日
    瀏覽(19)
  • STM32 蜂鳴器介紹 配置 播放音節(jié)

    STM32 蜂鳴器介紹 配置 播放音節(jié)

    ???????? 蜂鳴器一般被分為兩類 : 有源蜂鳴器 和 無(wú)源蜂鳴器 。 其中源是振蕩源 。 有源蜂鳴器內(nèi)部有振蕩電路,可以把直流電源轉(zhuǎn)換為一定頻率的脈沖信號(hào)。 因?yàn)樗恢陛敵鲆欢ǖ念l率,我們無(wú)法改變頻率,所以聲音只有一種,我們只能通過(guò)電源,控制它發(fā)不發(fā)聲。

    2024年02月04日
    瀏覽(17)
  • 【STM32學(xué)習(xí)筆記】(10)——蜂鳴器實(shí)驗(yàn)詳解

    【STM32學(xué)習(xí)筆記】(10)——蜂鳴器實(shí)驗(yàn)詳解

    蜂鳴器是一種一體化結(jié)構(gòu)的電子訊響器,采用 直流電壓 供電,廣泛應(yīng)用于計(jì)算機(jī)、打印機(jī)、復(fù)印機(jī)、報(bào)警器、 電子玩具 、汽車電子設(shè)備、電話機(jī)、 定時(shí)器 等電子產(chǎn)品中作發(fā)聲器件。蜂鳴器主要分為 壓電式蜂鳴器 和 電磁式蜂鳴器 兩種類型。蜂鳴器在電路中用字母 “H”

    2024年02月06日
    瀏覽(21)
  • 【STM32F103】誰(shuí)在用蜂鳴器彈奏一曲東風(fēng)破(無(wú)源蜂鳴器&PWM)

    【STM32F103】誰(shuí)在用蜂鳴器彈奏一曲東風(fēng)破(無(wú)源蜂鳴器&PWM)

    蜂鳴器一般可以分為兩種,一種是有源蜂鳴器,另一種是無(wú)源蜂鳴器。 有源蜂鳴器中的源是指震蕩源,也就是給了電壓再給個(gè)觸發(fā)信號(hào)就會(huì)以固定的頻率發(fā)出聲響。 而無(wú)源蜂鳴器內(nèi)部沒(méi)有震蕩源,我們可以將觸發(fā)信號(hào)的頻率傳給無(wú)源蜂鳴器,這樣就可以發(fā)出不同音階的聲響

    2024年01月19日
    瀏覽(18)
  • stm32蜂鳴器實(shí)現(xiàn)電子琴(原理+代碼)

    stm32蜂鳴器實(shí)現(xiàn)電子琴(原理+代碼)

    許久沒(méi)有摸32了,今天是培訓(xùn)的第一天,做個(gè)電子琴練練手。 編程難度很小,無(wú)非就是gpio控制引腳高低電平轉(zhuǎn)換,比較值得注意的主要是一些樂(lè)理上的知識(shí)。 我們能聽到的1 2 3 4 5 6 7的音符,實(shí)際上是一個(gè)個(gè)固定的頻率,這個(gè)具體算我也不懂,問(wèn)巴赫去吧 總而言之,通過(guò)百度

    2024年02月06日
    瀏覽(25)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包