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

相关文章
|
9月前
|
传感器 人工智能 监控
AI与物联网的融合:开启智能化未来的新篇章
AI与物联网的融合:开启智能化未来的新篇章
1446 96
|
存储 安全 Ubuntu
群控软件代理,群控服务器配置要求
群控软件代理,群控服务器配置要求
363 8
|
9月前
|
人工智能 Java 测试技术
《鸿蒙Next集成第三方AI图形渲染库:开启图形技术新征程》
在鸿蒙Next中集成第三方AI图形渲染库可提升应用的图形处理能力和视觉效果。开发者需熟悉开发环境,明确需求并选择合适的渲染库(如OpenGL、Vulkan等),获取相关文件与文档。集成步骤包括导入库文件、配置权限与资源、初始化及调用库功能。随后进行系统适配、性能优化和兼容性处理,确保不同设备上的正常运行。最后通过功能、性能和兼容性测试,确保应用稳定性和用户体验。这一过程要求开发者全面掌握鸿蒙开发技术和第三方库的使用方法,推动图形技术领域的创新。
172 7
|
11月前
|
Cloud Native Devops 持续交付
云原生架构的演进与实践
本文深入探讨了云原生架构的核心概念、技术组件及其在现代软件开发中的应用。通过分析容器化、微服务、持续集成/持续部署(CI/CD)等关键技术,揭示了这些技术如何共同促进应用程序的灵活性、可扩展性和高可用性。文章还讨论了云原生架构实施过程中面临的挑战和最佳实践,旨在为开发者和企业提供一套实用的指导方针,以便更有效地利用云计算资源,加速数字化转型的步伐。
238 5
|
数据采集 分布式计算 DataWorks
DataWorks产品使用合集之odps如何使用正则表达式匹配字段的内容
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
355 0
|
关系型数据库 MySQL 数据库
MySQL事务与并发控制:确保数据一致性与高效性能
本文深入探讨了MySQL数据库中的事务与并发控制,重点介绍了事务的概念与特性、ACID属性与事务隔离级别,以及事务的管理(BEGIN、COMMIT、ROLLBACK)和锁机制。事务作为数据库操作的基本单位,确保了数据的一致性和完整性,同时MySQL提供了多个事务隔离级别以平衡并发性与数据一致性。通过实际的代码示例,您可以了解如何在MySQL中开始、提交和回滚事务,以及如何使用锁机制来解决并发问题。深入理解这些概念和技术,读者将能够在数据库管理中保证数据的正确性和高效性能,为应用程序提供稳定可靠的数据基础。
1127 0
|
JSON NoSQL MongoDB
Mongo的导出和导入(mongoexport和mongoimport)
Mongo的导出和导入(mongoexport和mongoimport)
309 0
|
运维 Devops 开发工具
bug怎样算修完,浅谈团队分布式bug管理 git-poison简单易用的bug管理工具
介绍基于go-git开发实现通用化的git-poison,通过分布式源码管理bug追溯、查询。
46600 16
|
IDE Java 开发工具
Idea的基本使用带案例---详细易懂
Idea的基本使用带案例---详细易懂
331 0
|
分布式计算 资源调度 Java
MapReduce入门(一篇就够了)(下)
MapReduce入门(一篇就够了)(下)
711 0