3.STM32之蜂鸣器

  1. RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);

    • 这行代码使能了GPIOA外设的时钟。在STM32微控制器中,每个外设都需要单独使能其时钟才能正常工作。
  2. GPIO_InitTypeDef GPIO_InitStructure;

    • 定义了一个名为GPIO_InitStructure的变量,该变量的类型是GPIO_InitTypeDef。这是一个结构体类型,用于存储GPIO初始化的配置信息。
  3. GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;

    • 将GPIO的模式设置为推挽输出模式(Push-Pull Output)。在这种模式下,引脚可以输出高电平或低电平。
  4. GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;

    • 指定要初始化的GPIO引脚为所有引脚(即GPIOA的所有引脚)。GPIO_Pin_All是一个宏,表示所有引脚。
  5. GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

    • 设置GPIO的速度为50MHz。这个参数决定了引脚切换速度的最大值。
  6. GPIO_Init(GPIOA, &GPIO_InitStructure);

    • 调用GPIO_Init函数,用前面定义的配置初始化GPIOA。GPIOA是目标端口,&GPIO_InitStructure是指向配置结构体的指针。

       
      int main(void)
      {// 使能GPIOA外设时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);// 定义一个GPIO初始化结构体变量GPIO_InitTypeDef GPIO_InitStructure;// 设置GPIO模式为推挽输出模式GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;// 设置要初始化的GPIO引脚为所有引脚GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All; // 推挽输出模式,既可以输出真正的高电平,也可以输出低电平// 设置GPIO速度为50MHzGPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;// 使用上述配置初始化GPIOAGPIO_Init(GPIOA, &GPIO_InitStructure);
      }
      

      配置IO
       

通过控制GPIO PB12来控制蜂鸣器(高电平蜂鸣器叫)

#include "stm32f10x.h"                  // Device header
#include "Delay.h"int main(void)
{RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);  //开启GPIOB时钟//配置GPIO初始化GPIO_InitTypeDef GPIO_InitStructure; //定义了一个名为GPIO_InitStructure的变量,该变量的类型是GPIO_InitTypeDef。这是一个结构体类型,用于存储GPIO初始化的配置信息。GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出模式,既可以输出真正的高电平,也可以输出低电平GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;  //速度50MGPIO_Init(GPIOB, &GPIO_InitStructure); //GPIO中B的初始化while (1){GPIO_ResetBits(GPIOB, GPIO_Pin_12);Delay_ms(500);GPIO_SetBits(GPIOB, GPIO_Pin_12);Delay_ms(500);}
}

stm32之蜂鸣器

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

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

相关文章

yub‘s Algorithmic Adventures_Day12

反转字符串II link:541. 反转字符串 II - 力扣(LeetCode) 思路分析 关键点在于我们要找对反转思路,2k是一个区间,没达到条件和达到条件之后怎么处理. 因此考虑怎么筛选条件. 首先创建一个字符数组用于存储遍历的下标位置用于筛…

Scala内部类的运用

内部类:定义在类里面的类(内部类可以访问私有成员用它来操作类的私有成员,封闭性更好) class Student{var age18def say():Unit{}class Book{val bookName: Any "Scala程序设计"}}object Test19 {def main(args: Arra…

在wpf中登录成功之后怎么设置主页布局及点击不同的菜单跳转到不同的页面,这个是我们做wpf项目必要会的一个功能

通过frame与page实现在mvvm下的页面跳转 在wpf中登录成功之后怎么设置主页布局及点击不同的菜单跳转到不同的页面_哔哩哔哩_bilibili 1、MainWindow代码 <DockPanel><StackPanel DockPanel.Dock"Top" Height"40"><Grid><Grid.ColumnD…

详细教程:使用Grafana监控Mysql

什么是Grafana Grafana是一个跨平台的开源的度量分析和可视化工具&#xff0c;可以通过将采集的数据查询然后可视化的展 示&#xff0c;并及时通知。 下载Grafana 下载地址: https://grafana.com/grafana/download [rootgrafana ~]# wget https://dl.grafana.com/oss/relea…

【pytest中同一个用例多次执行生成一个测试报告的方法】

为了实现主函数执行一次&#xff0c;而指定的测试函数&#xff08;如 test_img&#xff09;执行 10 次&#xff0c;你可以通过以下两种方式进行控制&#xff1a; 方法一&#xff1a;在 pytest 中使用 pytest.mark.parametrize 使用 pytest 的 parametrize 装饰器可以实现让某…

qt QPushButton详解

QPushButton是Qt Widgets模块中的一个基本控件&#xff0c;用于提供可点击的按钮。它是用户界面中最为常见和常用的控件之一&#xff0c;通过点击按钮&#xff0c;用户可以触发特定的应用程序操作。 重要方法 QPushButton(const QIcon &icon, const QString &text, QWi…

【OpenAI】第五节(图像生成)利用 OpenAI 的 DALL·E 实现自动化图像生成:从文本到图像的完整教程

引言 OpenAI 推出的 DALLE 工具因其能够生成令人惊叹的艺术作品而备受瞩目。DALLE 不仅能够生成静态图像&#xff0c;还能根据用户的需求进行风格化处理&#xff0c;创造出独特的艺术作品。通过 OpenAI 的 API&#xff0c;你可以轻松将 DALLE 的强大功能集成到你的 Python 程序…

《分布式机器学习模式》:解锁分布式ML的实战宝典

在大数据和人工智能时代&#xff0c;机器学习已经成为推动技术进步的重要引擎。然而&#xff0c;随着数据量的爆炸性增长和模型复杂度的提升&#xff0c;单机环境下的机器学习已经难以满足实际需求。因此&#xff0c;将机器学习应用迁移到分布式系统上&#xff0c;成为了一个不…

Xcode16 编译运行YYCache iOS18 sqlite3_finalize 闪退问题解决方案

问题原因 升级Xcode 16 之后&#xff0c;真机运行APP&#xff0c;发现会有Crash&#xff0c;崩溃堆栈线上Crash 在 YYCache 之中。如下图所示 崩溃堆栈如下&#xff1a; * thread #1, queue com.apple.main-thread, stop reason signal SIGABRTframe #0: 0x00000001d9391…

免费开源Odoo软件如何实现电商仓库高效发货

世界排名第一的免费开源ERP软件Odoo&#xff0c;拥有非常强大的仓库管理WMS功能。本文以电商仓库发货管理为例&#xff0c;介绍电商订单的仓库发货作业的各种方法。电商订单仓库发货流程&#xff0c;通常分为三个步骤&#xff0c;即拣货、打包、发货。根据仓库日处理订单数量的…

Token的组成部分

一、头部 通常包含两部分信息&#xff1a;令牌类型和签名算法。 例如在 JWT 中&#xff0c;头部会指明这是一个 JWT&#xff08;typ字段&#xff0c;值为JWT&#xff09;&#xff0c;并且说明所使用的签名算法&#xff08;如alg字段&#xff0c;可能的值包括HS256、RS256等&a…

九、pico+Unity交互开发——触碰抓取

一、VR交互的类型 Hover&#xff08;悬停&#xff09; 定义&#xff1a;发起交互的对象停留在可交互对象的交互区域。例如&#xff0c;当手触摸到物品表面&#xff08;可交互区域&#xff09;时&#xff0c;视为触发了Hover。 Grab&#xff08;抓取&#xff09; 概念&#xff…

京东笔试题

和谐敏感词 &#x1f517; 题目地址 &#x1f389; 模拟 import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner new Scanner(System.in);int n scanner.nextInt();String s scanner.next();String[] words new String[…

【毕业设计】基于SpringBoot的网上商城系统

前言 &#x1f525;本系统可以选作为毕业设计&#xff0c;运用了现在主流的SSM框架&#xff0c;采用Maven来帮助我们管理依赖&#xff0c;所选结构非常合适大学生所学的技术&#xff0c;非常合适作为大学的毕业设计&#xff0c;难以适中。 &#x1f525;采用技术&#xff1a;Sp…

vscode使用socks5代理ssh-remote

Host 192.168.x.x HostName 192.168.x.x User root Port 22 ProxyCommand C:\Program Files (x86)\Nmap\ncat.exe --proxy-type socks5 --proxy 127.0.0.1:1080 %h %p

aeo认证需要什么材料

AEO&#xff08;Authorized Economic Operator&#xff09;认证&#xff0c;即经认证的经营者认证&#xff0c;是企业信用管理体系的一种高级认证。申请AEO认证时&#xff0c;企业需要准备一系列的材料以证明其符合认证标准。以下是一份详细的AEO认证申请材料清单&#xff1a; …

C++:模板(2)

目录 非类型模板参数 模板的特化 概念 函数模板特化 类模板特化 全特化 偏特化 模板的分离编译 分离编译的概念 模板的分离编译 ​编辑 模板总结 非类型模板参数 模板参数分为类型形参与非类型形参。 类型形参&#xff1a;在模板参数列表中&#xff0c;跟在class…

linux更改系统时间

测试环境和生产环境代码完全一致&#xff0c;但是生产环境代码碰到了问题&#xff0c;报错类似time expired&#xff0c;猜测和系统时间有关系&#xff0c;修改之后确实好了。测试如下&#xff1a; 参考&#xff1a;centos7时间同步教程_centos7 时间同步&#xff0c;如果遇到…

HttpURLConnection构造请求体传文件

HttpURLConnection构造请求体传文件 在Java中&#xff0c;使用HttpURLConnection构造请求体传输文件&#xff0c;你需要做以下几步&#xff1a; 1、创建URL对象指向你想要请求的资源。 2、通过URL打开连接&#xff0c;转换为HttpURLConnection实例。 3、设置请求方法为POST。 …

深入解析JavaScript中的箭头函数及其在React中的应用(箭头函数与传统函数的区别、如何在不同上下文中使用箭头函数)

文章目录 1. 引言2. 箭头函数的定义与用法3. 箭头函数与传统函数的区别3.1 this绑定3.2 不能作为构造函数3.3 arguments对象 4. 如何在不同上下文中使用箭头函数4.1 在类方法中使用箭头函数4.2 在回调函数中使用箭头函数 5. 深入探讨箭头函数在React中的应用5.1 在事件处理器中…