单片机入门学习六 STM32单片机学习三 蜂鸣器
2018-01-12 10:38
302 查看
蜂鸣器的控制仍是GPIO的入门开发,本篇仅罗列下蜂鸣器的相关概念和蜂鸣器开发源码
蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。
蜂鸣器在电路中用字母“H”或“HA”(旧标准用“FM”、“ZZG”、“LB”、“JD”等)表示。
本篇学习的板子上的蜂鸣器是电磁式的有源蜂鸣器,有源蜂鸣器是指自带震荡电路而不是指自带电源。(无源蜂鸣器没有自带震荡电路,必须外部提供2~5Khz左右的方波驱动才能发声。)
所用板子的蜂鸣器的原理图如下:
从原理图可以看出板子上的蜂鸣器接了一个三极管放大器,使用三极管的原因是stm32 IO的驱动电流不够大驱动蜂鸣器发声很吃劲,所以用一个放大器增大电流来驱动放大器。
看原理图我们会发现在R36旁还接了一个R38电阻,该电阻的作用是分流保证stm32 IO空闲状态下不会驱动蜂鸣器发声,因为stm32 IO空闲状态是浮空状态的,其输出的电压值不确定,所以旁接R38电阻目的是风流掉浮空状态下低电压产生的小电流。
从stm32原理图中,我们可以知道蜂鸣器接的IO口是PB8,如下图:
1、蜂鸣器
蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。
蜂鸣器在电路中用字母“H”或“HA”(旧标准用“FM”、“ZZG”、“LB”、“JD”等)表示。
本篇学习的板子上的蜂鸣器是电磁式的有源蜂鸣器,有源蜂鸣器是指自带震荡电路而不是指自带电源。(无源蜂鸣器没有自带震荡电路,必须外部提供2~5Khz左右的方波驱动才能发声。)
所用板子的蜂鸣器的原理图如下:
从原理图可以看出板子上的蜂鸣器接了一个三极管放大器,使用三极管的原因是stm32 IO的驱动电流不够大驱动蜂鸣器发声很吃劲,所以用一个放大器增大电流来驱动放大器。
看原理图我们会发现在R36旁还接了一个R38电阻,该电阻的作用是分流保证stm32 IO空闲状态下不会驱动蜂鸣器发声,因为stm32 IO空闲状态是浮空状态的,其输出的电压值不确定,所以旁接R38电阻目的是风流掉浮空状态下低电压产生的小电流。
从stm32原理图中,我们可以知道蜂鸣器接的IO口是PB8,如下图:
2、程序
#include "beep.h" //初始化PB8为输出口.并使能这个口的时钟 //蜂鸣器初始化 void BEEP_Init(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); //使能GPIOB端口时钟 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; //BEEP-->PB.8 端口配置 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //速度为50MHz GPIO_Init(GPIOB, &GPIO_InitStructure); //根据参数初始化GPIOB.8 GPIO_ResetBits(GPIOB,GPIO_Pin_8);//输出0,关闭蜂鸣器输出 }
#include "std32f10x.h" #include "beep.h" int main(void) { delay_init(); //延时函数初始化 BEEP_Init(); //初始化蜂鸣器端口 while(1) { GPIO_ResetBits(GPIOB,GPIO_Pin_8); delay_ms(300);//延时300ms GPIO_SetBits(GPIOB,GPIO_Pin_8); delay_ms(300);//延时300ms } }
相关文章推荐
- 单片机入门学习十一 STM32单片机学习八 外部中断
- 单片机入门学习十三 STM32单片机学习十 通用定时器
- 单片机入门学习九 STM32单片机学习六 延时函数、端口复用和重映射、中断
- 单片机入门学习四 STM32单片机学习一 跑马灯程序和创建工程
- 单片机入门学习十四 STM32单片机学习十一 通用定时器二
- 单片机入门学习十二 STM32单片机学习九 看门狗
- 单片机入门学习八 STM32单片机学习五 时钟系统
- 单片机入门学习七 STM32单片机学习四 按键输入
- 单片机入门学习十五 STM32单片机学习十二 电容触摸按键
- 单片机入门学习十 STM32单片机学习七 串口通讯
- 单片机入门学习五 STM32单片机学习二 跑马灯程序衍生出的stm32编程基础
- 单片机学习札记4---调试蜂鸣器驱动
- 单片机入门学习三 51单片机学习二
- 总结学习51系列,stm32系列单片机的过往
- STM32入门学习之USART(STM32F030F4P6基于CooCox IDE)
- STM32 嵌入式学习入门(1)——STM32简介及STM32学习方法简介
- 单片机入门学习二 51单片机学习一
- STM32入门学习之DMA(STM32F030F4P6基于CooCox IDE)
- STM32入门学习之GPIO(STM32F030F4P6基于CooCox IDE)(三)
- 51单片机学习笔记【七】——蜂鸣器和继电器