stm32第四天控制蜂鸣器

一:

1.蜂鸣器的种类

蜂鸣器是一种常用的电子发声元器件,采用直流电压供电。广泛应用于计算机,打ED机,报警器,电子玩具,汽车电子设备灯等产品中常见的蜂鸣器可分为有源蜂鸣器和无源蜂鸣器。
2.蜂鸣器的控制方式

有源蜂鸣器:内部有震荡源,只要通电即可自动发出固定频率的声音。(频率固定无法控制音色)

无源蜂鸣器:内部无震荡源,需要外部脉冲信号驱动发声,声音频率可变。(可改变频率来改变音色)
3.区分蜂鸣器

从外观上来看两种蜂鸣器形状相似,有源蜂呜器底部有黑胶密封。无源峰鸣器底部可以看到电路板,两种蜂鸣器都标注有正负极。

4:软件设计流程

·初始化系统

。 初始化GPIO外设时钟GPIOA

。 初始化蜂鸣器的引脚 A3

。输出电平控制蜂鸣题

5:写工程

a:建立bear(蜂鸣器)的.c文件

cs 复制代码
#include"Bear.h"
#include"stm32f10x.h"

void Bear_Init(void)//蜂鸣器的初始化函数
{
	//有两个步骤,1:初始化蜂鸣器引脚A3 2:初始化时钟,
	
	GPIO_InitTypeDef Bear_Initstrurt;//初始化蜂鸣器结构体,这一句是定义一个结构体变量
	
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE );//初始化APB2下的GPIO时钟
	
	//下面是配置结构体的参数
	Bear_Initstrurt.GPIO_Pin=GPIO_Pin_3;//配置引脚为GPIO_PIN_3,也就是GPIOA3引脚
	Bear_Initstrurt.GPIO_Speed=GPIO_Speed_10MHz;//配置A3引脚传输速度为10MHZ
	Bear_Initstrurt.GPIO_Mode=GPIO_Mode_Out_PP;//配置A3引脚输出模式为推挽输出
	GPIO_Init(GPIOA,&Bear_Initstrurt);//初始化GPIOA3的结构体
	
	
}

b:写Bear.h(头文件)

cs 复制代码
void Bear_Init(void);//声明函数

c:写main主函数

cs 复制代码
#include "stm32f10x.h"
#include "main.h"
#include "led.h"
#include "Bear.h"


void delay(uint16_t time)//延时1ms  软件延时粗延时
{
	uint16_t i=0;
	while(time --)
	{
		i=12000;
		while(i --);
	}
	
}


int  main()
{



	LED_Init();
	
	Bear_Init();//初始化蜂鸣器的引脚GPIO A3
		 

   while(1)
	 {

		GPIO_ResetBits(GPIOA, GPIO_Pin_3);//让GPIO A3输出低电平,蜂鸣器就响了
		 
		 
		
	 }
		 
   
}
相关推荐
小僧景贤1 小时前
单片机全方位调试实战指南:串口/RTT/逻辑分析仪/示波器/内核排错分层避坑教程
单片机·嵌入式硬件·物联网
2401_827501285 小时前
【无标题】
arm开发·嵌入式硬件
LeoZY_5 小时前
LinkScope 使用笔记:基于 OpenOCD 的通用硬件芯片调试助手
笔记·单片机·嵌入式硬件·开源软件
星空真迷人7 小时前
嵌入式鸿蒙并非精简版,核心究竟是什么?
stm32·单片机·嵌入式硬件·物联网·华为·harmonyos·iot
iCxhust7 小时前
8088单板机VScode集成开发环境使用方法二(汇编版)
汇编·单片机·微机原理·8088单板机
hongmai6668888 小时前
GK7205V300芯片深度解析:H.265低功耗视觉主控,助力安防监控高效选型
arm开发·嵌入式硬件·物联网·智能家居·h.265·risc-v
m0_466607708 小时前
只用三步使用MCSDK6生成电机控制工程
stm32·电机控制
2301_801434989 小时前
STM32F407移植TinyUSB
stm32·单片机·嵌入式硬件
Dlrb12119 小时前
Linux驱动---Linux 中断系统及其上与下半部的介绍与阻塞IO实现按键检测
linux·嵌入式硬件·imx6ull·中断·阻塞io
国产HT1621B10 小时前
YL4056 NTC 外围电阻 R3/R4 计算:从公式推导到工程选型
科技·单片机·嵌入式硬件