STM32CubeIDE基础学习-BEEP蜂鸣器实验

news2024/11/19 9:21:27

STM32CubeIDE基础学习-BEEP蜂鸣器实验


文章目录

  • STM32CubeIDE基础学习-BEEP蜂鸣器实验
  • 前言
  • 第1章 硬件介绍
  • 第2章 工程配置
    • 2.1 工程外设配置部分
    • 2.2 生成工程代码部分
  • 第3章 代码编写
  • 第4章 实验现象
  • 总结


前言

前面学习了LED闪烁实验,现在来学习一下蜂鸣器发声实验,直接在LED的工程基础上进行添加蜂鸣器的功能代码就行,其它的功能不用修改。

STM32CubeIDE基础知识学习回顾

实验目的:
学习配置GPIO作为输出功能使用,从而实现控制BEEP每隔500ms交替响灭功能。


第1章 硬件介绍

本实验使用的开发板主控芯片是STM32F103C8T6,其核心原理图如下:

在这里插入图片描述

时钟来源使用的是外部高速8M晶振作为高速时钟。

蜂鸣器接到芯片的PA15引脚上,原理图如下图所示:

在这里插入图片描述

第2章 工程配置

本实验直接采用上一个LED闪烁实验的工程作为基础模板,直接拷贝粘贴即可,然后在上面添加BEEP的相关功能配置即可,其它不用修改,就不用再新建工程了。

2.1 工程外设配置部分

配置GPIO,跟着标号依次设置,如果找不到芯片的引脚,可以在右下角进行搜索,就可以看到芯片对应的引脚出现黑色闪烁的,然后点击进行选择需要配置的功能即可。

鼠标左键点击该引脚,选择对应需要的功能,BEEP发声实验的使用选择输出功能就行。如下图所示:

在这里插入图片描述

接着配置GPIO引脚工作模式,根据查看BEEP的连接原理图可知,控制蜂鸣器的引脚是接到三极管上的,根据该该型号三极管的开关原理可知,当单片机引脚输出高电平时,三极管会导通,输出低电平时三极管截止不工作,从而可以控制蜂鸣器的响或不响。

引脚的配置如下图所示:

在这里插入图片描述

端口功能配置如下:
1、由于初始上电要蜂鸣器不发声,则需要配置初始化状态为低电平状态。
2、模式配置为推挽输出。
3、输出保持设置不用上下拉即可,也可以设置输出上拉,这里输出设置这个上下拉作用不是很大。
4、输出速度选择中速或低速都行。
5、User Label建议定义一个自己喜欢见名知意的名字,方便写程序时查看和方便使用。

接着RCC时钟、调试接口都不用修改,保持默认设置即可。

最后新增的蜂鸣器引脚如下图所示:

在这里插入图片描述

到此,整个工程需要新增的功能就配置完成了,接下来就可以生成代码工程进行功能代码编写了。

2.2 生成工程代码部分

可以快捷键ALT+K,或者点击生成工程的图标按钮生成代码工程。

生成后最终会显示下图这样的代码:

在这里插入图片描述

可以看到继承了上一个LED实验功能的代码。

接着就可以在上面添加自己需要实现的蜂鸣器功能代码了。

第3章 代码编写

进入代码工程后,可以先点击编译一下,看代码工程是否会报错,如果没有警告和报错就可以进行代码编写了。不然如果在一开始的工程都报错了,后面就不好找问题了。

在main.h里面可以看到蜂鸣器相关的宏定义,如下图所示:

在这里插入图片描述

创建beep.h文件,在里面添加的代码如下图所示,可以直接从led.h文件里面拷贝,对应修改为beep相关的配置即可。

在这里插入图片描述

最终main函数里面的while循环里面可以写如下代码就可以了:

代码片示例如下:

while(1)
{
	BEEP(0);             /* 关闭BEEP */
	HAL_Delay(500);      /* 延时500ms */
	BEEP(1);             /* 打开BEEP */
	HAL_Delay(500);      /* 延时500ms */
}

在这里插入图片描述

要注意main文件里面对应添加引入头文件路径才行,不然会报警告的。如下图所示:

在这里插入图片描述

添加完上面这些代码后,编译下载,可以听到板子上的蜂鸣器每隔500毫秒在交替响灭了。

附加部分:
为了方便测试,可以在创建的beep.c文件里面添加函数代码如下图所示,可以直接从led.c文件里面拷贝,对应修改为beep相关的即可,如下图所示:

在这里插入图片描述

然后在头文件声明一下该函数。

在这里插入图片描述

最终在main.c文件里面调用测试功能函数如下图所示:

在这里插入图片描述

第4章 实验现象

下载代码后,就可以听到板子的蜂鸣器每隔500毫秒在交替响灭了。


总结

蜂鸣器的实验还是比较简单的,采用的是有源蜂鸣器,主要弄明白三极管的导通原理就可以,本电路添加三极管的作用是为了增加IO口的驱动能力,保证该蜂鸣器能正常工作的。

一般情况下STM32 的IO口的驱动电流是比较小的,而蜂鸣器的工作电流是需要比较高,测试有一些比较小功率的蜂鸣器直接接IO也是可以正常驱动的,这种情况不使用使用三极管也行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1525540.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Stable Diffusion出图时,一次性比较多个lora的效果?

事前准备 在WebUI中,lora插件(也算是模型)的存放位置为: 你的WebUI启动器根目录\models\Lora 把训练好的,或者下载到的模型放到这个文件夹。 重启WebUI之后就会出现在这里 在Lora标签中 注意:这些lora需要…

前端接口防止重复请求实现方案

虽然大部分的接口处理我们都是加了loading的,但又不能确保真的是每个接口都加了的,可是如果要一个接口一个接口的排查,那这维护了四五年的系统,成百上千的接口肯定要耗费非常多的精力,根本就是不现实的,所以…

springboot基于JAVA的邮件过滤系统设计与实现

摘 要 当今社会已经步入了科学技术进步和经济社会快速发展的新时期,人类的生存和思考方式也产生了变化。传统邮件过滤、意见反馈采取了人工的管理方法,但这种管理方法存在着许多弊端,比如效率低下、安全性低以及信息传输的不准确等&#xff…

【剑指offer--C/C++】JZ25 合并两个排序的链表

题目 思路 这个题目大逻辑比较简单,就是一个比较和穿插,但细节上要考虑清楚,可以画个图模拟一下。我这里是设置将两个链表拆开组成一个新的链表,这样不需要占用新的空间。两个指针对应节点的值进行比较,那个节点值较小…

【2024第一期CANN训练营】3、AscendCL运行时管理

文章目录 【2024第一期CANN训练营】3、AscendCL运行时管理1. 初始化与去初始化2. 资源申请与释放2.1 申请流程2.2 释放流程2.3 运行模式(可选) 3. 数据传输3.1 接口调用流程3.2 主要数据传输场景1. Host内的数据传输2. 从Host到Device的数据传输3. 从Dev…

【深度学习】滴滴出行-交通场景目标检测

案例5:滴滴出行-交通场景目标检测 相关知识点:目标检测、开源框架的配置和使用(mmdetection, mmcv) 1 任务目标 1.1 任务和数据简介 本次案例将使用深度学习技术来完成城市交通场景下的目标检测任务,案例所使用的数…

「全栈」低代码时代开启!页面开发、数据处理、复杂逻辑统统一站搞定!

数字化浪潮的推进让企业对应用开发效率有着愈发严苛的要求。 传统的开发模式,无论是前端开发还是后端处理,都普遍面临周期长、成本高、响应慢、迭代难等问题,由于部分企业长期未进行创新改革,导致每次在新增系统功能时&#xff0…

【源码阅读】Mybatis底层源码分析(详细Debug查看附代码)

一、搭建测试代码框架 (代码已提交到github->测试代码,建议结合代码根据本文debug一遍更有利于理解,帮忙点个Star 哈,本人在这里谢谢了) 二、猜想Mybatis是如何设计的 从上面的案例中,可以大致可以猜测…

VMware虚拟机硬盘容量扩容方法

扩容后不会影响原文件。亲测有效,高效便捷 - 在关机状态下,先在VM上直接扩容硬盘容量,输入扩容后的硬盘最大容量 注意,如果想在原硬盘上增加容量,需要将原来的快照都删除 - 输入最大磁盘大小 运行虚拟机进入系统&…

【代码】伪标签图像随机生成

这段代码将生成2-4个大小不同的圆形和1-2个大小不同的椭圆形,并确保它们之间以及与背景边界之间不会发生重叠 限制圆形的半径不超过150,第13行 import cv2 import random import os这段代码将生成2-4个大小不同的圆形和1-2个大小不同的椭圆形&#xff0…

代码随想录算法训练营第八天|344.反转字符串、541. 反转字符串II、卡码网:54.替换数字、151.翻转字符串里的单词、卡码网:55.右旋转字符串

题目&#xff1a;344.反转字符串 文章链接&#xff1a;代码随想录 视频链接&#xff1a;LeetCode:344.反转字符串 题目链接&#xff1a;力扣题目链接 图释&#xff1a; // 反转字符串 void reverseString(vector<char>& s) {// 直接使用反转的库函数 reverserev…

数字化转型之于国家:为三驾马车更新马达

随着国民经济和社会发展第十四个五年规划的开启&#xff0c;中国也进入了全面建设社会主义现代化国家的新发 展阶段&#xff0c;未来要在坚持“创新、协调、绿色、开放、共享”的新发展理念下&#xff0c;在质量效益明显提升的基础上实 现经济持续健康发展。持续的发展意味着…

水库大坝安全监测中需要注意的事项

随着经济和社会的发展&#xff0c;水资源的需求也在不断增加。因此&#xff0c;建设水库已成为保障水资源的主要方式之一。然而&#xff0c;随着水库规模的增大和工程的复杂性的增加&#xff0c;水库大坝的安全问题也日益引起重视。为此&#xff0c;需要对水库大坝进行安全监测…

【爬虫】– 抓取原创力文档数据

使用RPA工具&#xff0c;实现针对于原创力中不可下载文档的抓取&#xff0c;可延用于其他类似文库 1 使用工具、环境 影刀RPA、WPS Office、谷歌浏览器&#xff08;非指定&#xff09; 2 代码流程 3 关键点 此方案只适合抓取非VIP即可预览全文的文档&#xff0c;抓取下来的数…

计算机网络 谢希仁(001-1)

计算机网络-方老师 总时长 24:45:00 共50个视频&#xff0c;6个模块 此文章包含1.1到1.4的内容 简介 1.1计算机网络的作用 三网融合&#xff08;三网合一&#xff09; 模拟信号就是连续信号 数字信号是离散信号 1.2互联网概述 以前2兆带宽就要98 现在几百兆带宽也就几百块 …

海川润泽AI机器视觉仪系列产品,助推“人工智能+”打开新质生产力的大门

3月5日&#xff0c;第十四届全国人民代表大会第二次会议开幕。国务院总理李强在政府工作报告&#xff0c;提出大力推进现代化产业体系建设&#xff0c;加快发展新质生产力。深入推进数字经济创新发展&#xff0c;制定支持数字经济高质量发展政策&#xff0c;积极推进数字产业化…

AI+权重衰退

AI权重衰退 1权重衰退2代码实现 2丢弃法 1权重衰退 AI权重衰退是指在人工智能&#xff08;AI&#xff09;领域中的一种技术或方法&#xff0c;用于训练机器学习模型时对权重进行惩罚或调整&#xff0c;以避免过拟合现象的发生。 在机器学习中&#xff0c;过拟合是指模型在训练…

Debug追踪

2.2 Debug追踪 使用IDEA的断点调试功能&#xff0c;查看程序的运行过程 在有效代码行&#xff0c;点击行号右边的空白区域&#xff0c;设置断点&#xff0c;程序执行到断点将停止&#xff0c;我们可以手动来运行程序 点击Debug运行模式 程序停止在断点上不再执行&#xff0c…

C/C++程序设计实验报告3 | 数组实验

本文整理自博主本科大一《C/C程序设计》专业课的课内实验报告&#xff0c;适合C语言初学者们学习、练习。 编译器&#xff1a;gcc 10.3.0 ---- 注&#xff1a; 1.虽然课程名为C程序设计&#xff0c;但实际上当时校内该课的内容大部分其实都是C语言&#xff0c;C的元素最多可能只…

多重背包(二进制优化)

[Acwing 5.多重背包] 有 N N N 种物品和一个容量是 V V V 的背包。 第 i i i 种物品最多有 s i s_i si​ 件&#xff0c;每件体积是 v i v_i vi​&#xff0c;价值是 w i w_i wi​。 求解将哪些物品装入背包&#xff0c;可使物品体积总和不超过背包容量&#xff0c;且…