蜂鸣器

Posted 新生代黑马

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了蜂鸣器相关的知识,希望对你有一定的参考价值。

 

功能

  使蜂鸣器发出响声

分析

  • 查看原理图蜂鸣器的端口是PF8
  • 管脚外设时钟的配置
  • 管脚输出状态的配置
    1. 模式配置
    2. 输出类型设置——推挽输出
    3. 输出速率设置  
  • 循环打开、等待、关闭、等待操作

代码

 1 //beep.h
 2 #ifndef _BEEP_H_
 3 #define _BEEP_H_
 4 
 5 #define BEEP_ON (GPIOF->ODR |= (1<<8))
 6 #define BEEP_OFF (GPIOF->ODR &= ~(1<<8))
 7 
 8 void Beep_Init(void);
 9 void Delay(int n);
10 
11 #endif
 1 //beep.c
 2 #include "stm32f4xx.h"
 3 #include "beep.h"
 4 
 5 void Beep_Init(void)
 6 {
 7     //管脚外设时钟
 8     RCC->AHB1ENR |= (1<<5);    
 9     //PF8管脚状态
10     //模式配置
11     GPIOF->MODER &= ~(0X3<<16);    //清零
12     GPIOF->MODER |= (0X1<<16);    //PF8配置为通用输出状态
13     //输出类型配置
14     GPIOF->OTYPER &= ~(0X1<<8);    //推挽输出    
15     //速率配置
16     GPIOF->OSPEEDR &= ~(0X1<<16);
17     GPIOF->OSPEEDR |= (0X2<<16);    
18     //上下拉配置
19     GPIOF->PUPDR &= ~(0X3<<16);
20     GPIOF->PUPDR |= (0X1<<16);
21 }
22 
23 void Delay(int n)
24 {
25     while(n--);
26 }
 1 //main.c
 2 #include "stm32f4xx.h"
 3 #include "beep.h"
 4 
 5 int main()
 6 {    
 7     while(1)
 8     {    
 9         Beep_Init();
10         BEEP_ON;
11         Delay(1000000);
12         BEEP_OFF;
13         Delay(1000000);
14     }
15 }

 

以上是关于蜂鸣器的主要内容,如果未能解决你的问题,请参考以下文章

51单片机蜂鸣器乐谱放不完

stm32按键控制的蜂鸣器为啥不响?帮小白看看代码

蜂鸣器

arduino停止蜂鸣器

第八章

FPGA/数字IC手撕代码11——基于PWM驱动的蜂鸣器verilog开发