根据LED修改峰鸣器驱动程序|学习笔记

简介: 快速学习根据LED修改峰鸣器驱动程序

开发者学堂课程【嵌入式之RFID开发与应用2020版根据LED修改峰鸣器驱动程序】学习笔记与课程紧密联系,让用户快速学习知识

课程地址https://developer.aliyun.com/learning/course/665/detail/11152


根据LED修改峰鸣器驱动程序

 

回去看 LED的初始化,为什么要把它配置成推广输出?为了让灯变得更亮,推动能力更强,为什么不选择其他的输入输出方式?不同的配置带来不同的效果。

把程序简单修改一下,让它不再是驱动一个LED灯,而是让它去驱动一个蜂鸣器。如原理图所示,把蜂鸣器接到了B11上面。

image.png

Void led-int(void)

{

GPIO-InitTypeDef   GPIO-InitStructure;

RCC-APB2PeriphclockCmd(RCC-XXX-LED, ENABLE);

GPIO-InitStructure,GPIO-Pin=GPIO-XXX-LED;

GPIO-InitStructure,GPIO-Mode=GPIO-Mode-Out-PP;

GPIO-InitStructure,GPIO-Speed=GPIO-Speed-2MHZ;

GPIO-Init(GPIO-XXX-LED-PORT,& GPIO-InitStructure);

GPIO-XXX-LED-OFF():

}

操作B11复制上面的代码,将LED改为beep,多了一个输出beeo_init()并且操作的这些广角也重新复制一份:

/*LED*/

#define RCC-XXX-LED RCC-APB2Periph-GPIOC

#define GPIO-XXX-LED-PORT GPIOC

#define GPIO-XXX-LED GIO-Pin-13

将LED统一改为BEEP,并且真正的BEEP的广角不再是c了,而是B11,所以要把GPIOC首先改GPIOB, GIO-Pin-13改成GIO-Pin-11。这些值在stm32f10x文件里面, 把所有的io所有的计算机定义个变,官方的,直接用。

#define BEEP_xxx_ON()

GPIO_ResetBits(GPIO_XxXx_LED_PORT,GPIO_xXx_LED)//点亮

#define BEEP_xxx_OFF()

GPIO_SetBits(GPIo_xxx_LED_PORT,GPIO_xxx_LED)//熄灭

改一下LED为BEEP的开关,点亮和熄灭删掉,是发声和不发声。其余也是改LED为BEEP。但是风鸣器不知道是高电频的时候响还是低电频的时候响。

image.png

按上图所示电路来看,它是低电平的时候会响,刚好跟这个灯匹配的,但如果不是这个电路,可能就反过来了,b11就完成

Main函数改为下面所示,让这个灯和蜂鸣器一起一个在闪,一个在响:

Int main(void)

{

Led-int();

Beep-init();

Whie(1){

LED-XXX-ON();

BEEP-XXX-ON();

delay-ms(300);

LED-XXX-ON();

BEEP-XXX-ON();

delay-ms(300);

}

重新编一下程序,直接下载,复位。听到声音。这个是根据GPIO改出来的封鸣器,掌握了基本原理,改成另一个功能的程序非常容易的。还可以去做一个按键。以上是根据LED修改蜂鸣器的驱动程序。

相关文章
|
编解码 Linux
Linux MIPI DSI驱动调试笔记-设备树DCS格式序列之配置LCD初始化代码(二)
Linux MIPI DSI驱动调试笔记-设备树DCS格式序列之配置LCD初始化代码(二)
1465 0
|
7月前
|
缓存 网络协议 算法
[蓝桥杯嵌入式]hal库 stm32 PWM的使用(随时修改占空比,随时修改频率)
[蓝桥杯嵌入式]hal库 stm32 PWM的使用(随时修改占空比,随时修改频率)
STM32使用HAL库操作外部中断——实战操作
STM32使用HAL库操作外部中断——实战操作
264 0
LED模板驱动程序的改造:设备树
LED模板驱动程序的改造:设备树
122 0
|
存储 芯片 UED
【STM32】单片机模式配置&FlyMcu串口下载固件&STLINK Utility
【STM32】单片机模式配置&FlyMcu串口下载固件&STLINK Utility
610 0
RK3399平台开发系列讲解(USB转串口)5.49、/dev/ttyUSB 修改串口名
RK3399平台开发系列讲解(USB转串口)5.49、/dev/ttyUSB 修改串口名
229 0
 RK3399平台开发系列讲解(USB转串口)5.49、/dev/ttyUSB 修改串口名
L298N驱动模块---51单片机代码
L298N驱动模块---51单片机代码
344 0
L298N驱动模块---51单片机代码
|
Ubuntu 开发工具 虚拟化
UART子系统(十六)编写虚拟UART驱动程序_调试
UART子系统(十六)编写虚拟UART驱动程序_调试
281 0
UART子系统(十六)编写虚拟UART驱动程序_调试
UART子系统(十二)UART驱动调试方法
UART子系统(十二)UART驱动调试方法
194 0
UART子系统(十二)UART驱动调试方法
|
开发工具 git
UART子系统(十四)编写虚拟UART驱动程序\_实现uart_ops
UART子系统(十四)编写虚拟UART驱动程序\_实现uart_ops
157 0
UART子系统(十四)编写虚拟UART驱动程序\_实现uart_ops