【【萌新的STM32学习-19-蜂鸣器实验】】

news2025/4/17 1:48:28

萌新的STM32学习-19-蜂鸣器实验

STM32在正点原子的视频中并未讲述关于蜂鸣器的实验,我们自己探究一下作为简单的HAL库入门
蜂鸣器每隔 300ms 响或者停一次。LED0 每隔 300ms 亮或者灭一次。LED0 亮的时候蜂鸣器不叫,而 LED0 熄灭的时候,蜂鸣器叫。
在这里插入图片描述
在这里插入图片描述
他每次都会做出一个宏定义
在这里插入图片描述
在这里插入图片描述
说实话 要不是写出来为了所谓的逻辑整洁感
我都觉得这个define 毫无意义,不如直接命名清晰
然后下面是把beep亮灯封装在一个函数里面 让人少直接调用寄存器更加简洁
在这里插入图片描述

/*** @brief 初始化 BEEP 相关 IO 口, 并使能时钟* @param 无* @retval 无*/void beep_init(void){ GPIO_InitTypeDef gpio_init_struct;BEEP_GPIO_CLK_ENABLE(); /* BEEP 时钟使能 */ 
gpio_init_struct.Pin = BEEP_GPIO_PIN; /* 蜂鸣器引脚 */ 
gpio_init_struct.Mode = GPIO_MODE_OUTPUT_PP; /* 推挽输出 */ 
gpio_init_struct.Pull = GPIO_PULLUP; /* 上拉 */



 gpio_init_struct.Speed = GPIO_SPEED_FREQ_HIGH; /* 高速 */
 
 HAL_GPIO_Init(BEEP_GPIO_PORT, &gpio_init_struct); /* 初始化蜂鸣器引脚 */
  BEEP(0); /* 关闭蜂鸣器 */}
  

main.c

int main(void){
HAL_Init(); /* 初始化 HAL 库 */ 
sys_stm32_clock_init(RCC_PLL_MUL9); /* 设置时钟,72M */
 delay_init(72); /* 初始化延时函数 */
  led_init(); /* 初始化 LED */ 
  beep_init(); /* 初始化蜂鸣器 */
   while (1) { LED0(0);
    BEEP(0); delay_ms(300);
     LED0(1); BEEP(1); 
     delay_ms(300); }}

这就是蜂鸣器实验 给人掌握的了解HAL库

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

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

相关文章

【类与对象】①认识类与对象

文章目录 1.初步认识2.类的定义3.类的访问限定符及封装4. 类的封装5.类的作用域6.类的实例化7.类的对象模型8.this指针 1.初步认识 C与C异同点: C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题…

leetcode189. 轮转数组

题目: 给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。 示例: 示例 1: 输入: nums [1,2,3,4,5,6,7], k 3 输出: [5,6,7,1,2,3,4] 解释: 向右轮转 1 步: [7,1,2,3,4,5,6] 向右轮转 2 步: [6,7,1,2…

C语言每日一练-----Day(4)

本专栏为c语言练习专栏,适合刚刚学完c语言的初学者。本专栏每天会不定时更新,通过每天练习,进一步对c语言的重难点知识进行更深入的学习。 今日练习题关键字:记负均正    旋转数组的最小数字    二分查找 💓博主…

Android自动化测试中操作技巧合集(建议收藏)

Android自动化测试中短信验证码的操作技巧 一、内容提供器机制简介 Android 系统采用了内容提供器(ContentProvider)机制来管理不同应用的数据访问。内容提供器为不同应用间的数据共享提供了接口,它们像是一个中央数据仓库,各个应用可以通过内容 URI 来存…

比较差值结构的两种排斥作用

( A, B )---3*30*2---( 1, 0 )( 0, 1 ) 让网络的输入只有3个节点,AB训练集各由6张二值化的图片组成,让差值结构中有两个点,一种情况两个点都属于A,一种情况两个点分别来自A和B。排列组合所有可能,统计迭代次数并排序。…

【C++多态】

目录 1.多态的概念2.多态的定义及实现2.1多态的构成条件2.2虚函数的一些细节2.3析构函数可以是虚函数吗?2.4 重载、覆盖(重写)、隐藏(重定义)的对比 3.抽象类4.多态的原理4.1虚函数表4.2虚函数地址的打印4.3多继承的函数虚表 1.多态的概念 什么是多态? …

FLV 封装格式解析

1、FLV 简介 FLV(Flash Video) 是 Adobe 公司推出的一种流媒体格式,由于其封装后的音视频文件体积小、封装简单等特点,非常适合于互联网上使用。目前主流的视频网站基本都支持FLV。采用 FLV 格式封装的文件后缀为.flv。直播场景下拉流比较常见的是 http…

git学习笔记(重实践) | 版本管理 - 分支管理 - 常见场景

文章目录 git学习笔记Git是什么仓库常见的命令commit 备注规范在文件下设置git忽略文件 .gitignore 版本管理git log | git reflog 查看提交日志/历史版本版本穿梭 git resetgit reset HEAD <file> git checkout -- fileName 丢弃工作区的修改git revertGit恢复之前版本的…

成功项目风险预防可控的5个重点

成功的项目往往重视项目风险的预防和管控&#xff0c;这样有利于可能风险的及时控制和解决&#xff0c;将其不利影响降到最小。如果不重视对风险的预防和管控&#xff0c;不及时发现和处理项目风险&#xff0c;那么项目风险往往会为我们带来意想不到的不利后果&#xff0c;往往…

【LeetCode-中等题】146. LRU 缓存

文章目录 题目方法一&#xff1a;直接继承LinkedHashMap调用api方法二&#xff1a;自定义LinkedHashMap HashMap ListNode LinkedHashMap 题目 LRU缓存是什么&#xff1a;LRU缓存机制&#xff0c;你想知道的这里都有 实现 LRU 缓存算法 方法一&#xff1a;直接继承Linked…

深度图相关评测网站

文章目录 1 单目/Stereo相关测评网站介绍12 单目/Stereo相关测评网站介绍23 单目/Stereo相关测评网站介绍3 1 单目/Stereo相关测评网站介绍1 https://vision.middlebury.edu/stereo/eval3/ 2 单目/Stereo相关测评网站介绍2 http://www.cvlibs.net/datasets/kitti/eval_stereo…

Vscode画流程图

1.下载插件 Draw.id Integration 2.桌面新建文件&#xff0c;后缀名改为XXX.drawio 在vscode打开此文件 &#xff0c;就可以进行绘制流程图啦

无涯教程-Android - Broadcast Receivers

Broadcast Receivers 仅响应来自其他应用程序或系统本身的广播消息&#xff0c;这些消息有时称为events或intents。例如&#xff0c;应用程序还可以启动广播&#xff0c;以使其他应用程序知道某些数据已下载到设备并可供他们使用&#xff0c;因此广播接收器将拦截此通信并启动适…

做区块链卡牌游戏有什么好处?

区块链卡牌游戏是一种基于区块链技术的创新性游戏形式&#xff0c;它将传统的卡牌游戏与区块链技术相结合&#xff0c;实现了去中心化、数字化资产的交易和收集。这种新型游戏形式正逐渐在游戏行业引起了广泛的关注和热潮。本文将深入探讨区块链卡牌游戏的定义、特点以及其在未…

自定义node-red节点中,如何编写节点的配置信息弹窗

前言 最近有读者通过博客向我咨询,在自定义node-red节点时,如何编写该节点的配置页面,就是我们通常见到的,双节节点打开的信息弹窗。如下图: 上面两张图,展示了inject节点与mqtt in 节点的配置弹窗。 在弹窗中,除了上面的删除,取消,完成,和下面的失效按钮。 中间…

以“迅”防“汛”!5G视频快线筑牢防汛“安全堤”

近期&#xff0c;西安多地突发山洪泥石流灾害。防洪救灾刻不容缓&#xff0c;为进一步做好防汛工作&#xff0c;加强防洪调度监管&#xff0c;切实保障群众的生命财产安全&#xff0c;当地政府管理部门亟需拓展智能化技术&#xff0c;通过人防技防双保障提升防灾救灾应急处置能…

模型的保存加载、模型微调、GPU使用及Pytorch常见报错

序列化与反序列化 序列化就是说内存中的某一个对象保存到硬盘当中&#xff0c;以二进制序列的形式存储下来&#xff0c;这就是一个序列化的过程。 而反序列化&#xff0c;就是将硬盘中存储的二进制的数&#xff0c;反序列化到内存当中&#xff0c;得到一个相应的对象&#xff…

深度学习论文: Segment Any Anomaly without Training via Hybrid Prompt Regularization

深度学习论文: Segment Any Anomaly without Training via Hybrid Prompt Regularization Segment Any Anomaly without Training via Hybrid Prompt Regularization PDF: https://arxiv.org/pdf/2305.10724.pdf PyTorch代码: https://github.com/shanglianlm0525/CvPytorch Py…

【计算机系统概论Yale.patt】第二章

文章目录 2.数据的表示与计算2.1 bit2.1.1 信号的编码表示2.1.2 计算机采用二进制的原因2.1.3 数据类型无符号整数有符号整数原码反码补码编码方式与范围移码4-bit的不同编码方式 2.1.4 IEEE754浮点数尾数指数0000 0000 含义1111 1111含义 例 2.2 进制转换2.2.1 二转十2.2.2 十…

python面试:使用cProfile剖析程序性能

我们需要安装tuna&#xff1a;pip install tuna 程序执行完毕后&#xff0c;我们会得到一个results.prof&#xff0c;在CMD中输入指令&#xff1a;“tuna results.prof”。 import time import cProfile import pstatsdef add(x, y):resulting_sum 0resulting_sum xresulti…