根据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修改蜂鸣器的驱动程序。

相关文章
|
11月前
|
移动开发 API
STM32使用HAL库操作GPIO
使用HAL库的优点在于不用手动添加初始化的代码了,CubeMX会根据软件设置自动生成
150 0
|
11月前
STM32使用HAL库操作外部中断——实战操作
STM32使用HAL库操作外部中断——实战操作
140 0
|
11月前
|
编解码
day27-LCD开发板操作(2022.2.24)
day27-LCD开发板操作(2022.2.24)
68 1
|
12月前
LED模板驱动程序的改造:设备树
LED模板驱动程序的改造:设备树
95 0
RK3399平台开发系列讲解(USB转串口)5.49、/dev/ttyUSB 修改串口名
RK3399平台开发系列讲解(USB转串口)5.49、/dev/ttyUSB 修改串口名
146 0
 RK3399平台开发系列讲解(USB转串口)5.49、/dev/ttyUSB 修改串口名
|
开发工具 git
UART子系统(十四)编写虚拟UART驱动程序\_实现uart_ops
UART子系统(十四)编写虚拟UART驱动程序\_实现uart_ops
106 0
UART子系统(十四)编写虚拟UART驱动程序\_实现uart_ops
|
Ubuntu 开发工具 虚拟化
UART子系统(十六)编写虚拟UART驱动程序_调试
UART子系统(十六)编写虚拟UART驱动程序_调试
234 0
UART子系统(十六)编写虚拟UART驱动程序_调试
|
Linux 存储控制器 芯片
ZYNQ-ZedBoard设置Quad-SPI启动和SD驱动
ZYNQ-ZedBoard设置Quad-SPI启动和SD驱动
360 0
ZYNQ-ZedBoard设置Quad-SPI启动和SD驱动
|
Python
树莓派第一篇:GPIO控制LED小灯
树莓派第一篇:GPIO控制LED小灯
343 0
树莓派第一篇:GPIO控制LED小灯
|
网络安全 芯片
可编程 USB 转串口适配器开发板 DS1302 时钟芯片参数读取与修改
DS1302 是实时时钟芯片,SPI 接口,可以对年、月、日、周、时、分、秒进行计时,且具有闰年补偿等多种功能。DS1302 内部有一个 31×8 的用于临时性存放数据的 RAM 寄存器。
可编程 USB 转串口适配器开发板 DS1302 时钟芯片参数读取与修改