日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【STM32】GPIO之蜂鸣器

發布時間:2024/4/24 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【STM32】GPIO之蜂鸣器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

00. 目錄

文章目錄

    • 00. 目錄
    • 01. 蜂鳴器簡介
    • 02. 硬件設計
    • 03. 程序示例一
    • 04. 程序示例二
    • 05. 程序實例三
    • 06. 附錄
    • 07. 聲明

01. 蜂鳴器簡介

蜂鳴器是一種一體化結構的電子訊響器,采用直流電壓供電,廣泛應用于計算機、打印機、復印機、報警器、電子玩具、汽車電子設備、電話機、定時器等電子產品中作發聲器件。蜂鳴器主要分為壓電式蜂鳴器和電磁式蜂鳴器兩種類型。

探索者 STM32F4 開發板板載的蜂鳴器是電磁式的有源蜂鳴器,如圖 7.1.1 所示:

這里的有源不是指電源的“源”,而是指有沒有自帶震蕩電路,有源蜂鳴器自帶了震蕩電路,一通電就會發聲;無源蜂鳴器則沒有自帶震蕩電路,必須外部提供 2~5Khz 左右的方波驅動,才能發聲。

02. 硬件設計

蜂鳴器在硬件上也是直接連接好了的,不需要經過任何設置,直接編寫代碼就可以了。蜂鳴器的驅動信號連接在 STM32F4 的 PF8 上。

圖中我們用到一個 NPN 三極管(S8050)來驅動蜂鳴器,R61 主要用于防止蜂鳴器的誤發聲。當 PF.8 輸出高電平的時候,蜂鳴器將發聲,當 PF.8 輸出低電平的時候,蜂鳴器停止發聲。

03. 程序示例一

蜂鳴器不叫

beep.h文件

#ifndef __BEEP_H__ #define __BEEP_H__#include "sys.h"//蜂鳴器初始化 void BEEP_Init(void);#define BEEP PFout(8)#endif /*__BEEP_H__*/

beep.c文件

#include "beep.h"//蜂鳴器初始化 void BEEP_Init(void) {GPIO_InitTypeDef GPIO_InitStruct;GPIO_InitStruct.GPIO_Pin = GPIO_Pin_8;GPIO_InitStruct.GPIO_Mode = GPIO_Mode_OUT;GPIO_InitStruct.GPIO_Speed = GPIO_Speed_100MHz;GPIO_InitStruct.GPIO_OType = GPIO_OType_PP;GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_DOWN;//使能時鐘RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF, ENABLE);//初始化GPIOGPIO_Init(GPIOF, &GPIO_InitStruct);//設置默認低電平GPIO_ResetBits(GPIOF, GPIO_Pin_8); }

main.c文件

#include "stm32f4xx.h"#include "delay.h" #include "led.h" #include "beep.h"int main(void) {//初始化delay_init(168);LED_Init();BEEP_Init();//蜂鳴器不叫GPIO_ResetBits(GPIOF, GPIO_Pin_8); }

04. 程序示例二

蜂鳴器叫

main.c文件

#include "stm32f4xx.h"#include "delay.h" #include "led.h" #include "beep.h"int main(void) {//初始化delay_init(168);LED_Init();BEEP_Init();GPIO_SetBits(GPIOF, GPIO_Pin_8); }

05. 程序實例三

蜂鳴器循環叫1秒 不叫1秒

main.c

#include "stm32f4xx.h"#include "delay.h" #include "led.h" #include "beep.h"int main(void) {//初始化delay_init(168);LED_Init();BEEP_Init();//蜂鳴器不叫GPIO_ResetBits(GPIOF, GPIO_Pin_8);GPIO_ResetBits(GPIOF, GPIO_Pin_9); delay_ms(1000);//蜂鳴器叫GPIO_SetBits(GPIOF, GPIO_Pin_8);GPIO_SetBits(GPIOF, GPIO_Pin_9);delay_ms(1000);}

位帶操作

main.c文件

#include "stm32f4xx.h"#include "delay.h" #include "led.h" #include "beep.h"int main(void) {//初始化delay_init(168);LED_Init();BEEP_Init();//蜂鳴器不叫LED2 = 0;BEEP = 0;delay_ms(1000);//蜂鳴器叫LED2 = 1;BEEP = 1;delay_ms(1000); }

06. 附錄

6.1 【STM32】STM32系列教程匯總

網址:【STM32】STM32系列教程匯總

07. 聲明

該教程參考了正點原子的《STM32 F4 開發指南》

總結

以上是生活随笔為你收集整理的【STM32】GPIO之蜂鸣器的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。