根据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 调度
浅谈GPU虚拟化技术(四)- GPU分片虚拟化
作者:郑晓,龙欣,弹性计算异构计算项目组 让各位久等了,阿里小二这就开始上新菜:“GPU分片虚拟化”。 对于“分片”的理解,相信大家已经不陌生了。此处的分片从两个维度上来定义:其一,是对GPU在时间片段上的划分,与CPU的进程调度类似,一个物理GPU的计算engine在几个vGPU之间共享,而调...
23286 1
|
7月前
|
自然语言处理
主流大模型结构
本文详解主流大模型架构:Encoder-Decoder(如T5)、Decoder-Only(如GPT)、Encoder-Only(如BERT)和Prefix-Decoder(如GLM),涵盖代表模型、特点与应用场景;梳理GPT系列演进、LLaMA发展及中文大模型现状,并提供模型对比与面试重点解析。
|
供应链 安全 芯片
台积电7nm芯片断供影响分析:中国大陆半导体产业的挑战与机遇
近日,有关台积电可能断供中国大陆7nm芯片的消息引发了业界的广泛关注。这一事件不仅关系到全球半导体供应链的稳定性,也对中国大陆半导体产业的发展提出了新的挑战。本文将探讨这一事件背后的原因、可能的影响以及中国大陆半导体产业的应对策略。
971 0
|
存储 算法 C语言
从C语言到C++_39(C++笔试面试题)next_permutation刷力扣
从C语言到C++_39(C++笔试面试题)next_permutation刷力扣
412 5
|
Web App开发 存储 算法
|
机器学习/深度学习 人工智能 运维
构建高效自动化运维系统:DevOps与AI的融合
【5月更文挑战第19天】 在数字化转型的浪潮中,企业IT运维面临着日益复杂的挑战。传统的手动运维方式已经无法满足快速迭代和高可靠性的需求。本文探讨了如何通过结合DevOps理念和人工智能(AI)技术,构建一个高效的自动化运维系统。文章首先回顾了DevOps的核心原则及其在自动化运维中的应用,接着分析了AI如何增强故障预测、智能决策和自动化流程的能力。最后,提出了一个综合DevOps与AI技术的自动化运维框架,并讨论了其在实际部署中的优势和潜在挑战。
|
API 数据库 数据安全/隐私保护
分布式系统中,权限设计实践
采用合理的策略去管理资源的权限并不是一件简单的事,通常随着业务和系统的不断扩展,对权限体系都会带来直接的影响,所以在做结构设计时,需要相对复杂但又要避免过度复杂。
782 0
分布式系统中,权限设计实践
|
Linux
Linux命令之history
Linux命令 history
639 0
|
编解码 前端开发 数据可视化
【好物分享】分享给前端开发的28个资源(网站、软件、插件),简直是提高效率必备
对于开发来说,尤其是前端开发,有一个好的开发环境真的很提升工作效率,这里我整理了28个顶级资源,包括但不限于网站、软件和插件(浏览器插件、VScode插件)
1015 0
【好物分享】分享给前端开发的28个资源(网站、软件、插件),简直是提高效率必备