STM32开发(十五)STM32F103 片内资源 —— 通用定时器 PWN 无源蜂鸣器 详解

news2025/1/12 20:39:54

文章目录

    • 一、基础知识点
    • 二、开发环境
    • 三、STM32CubeMX相关配置
    • 四、Vscode代码讲解
    • 五、结果演示


一、基础知识点

本实验通过STM32F103 的通用定时器 PWN功能,实现对无源蜂鸣器控制。
本实验内容知识点:
1、通用定时器 PWN 详解
2、有源蜂鸣器和无源蜂鸣器 解析

准备好了吗?开始实战show time。


二、开发环境

1、硬件开发准备
主控:STM32F103ZET6
无源蜂鸣器

2、软件开发准备
软件开发使用虚拟机 + VScode + STM32Cube 开发STM32,在虚拟机中直接完成编译下载。
该部分可参考:软件开发环境构建软件开发环境构建


三、STM32CubeMX相关配置

1、STM32CubeMX基本配置
本实验基于CubeMX详解构建基本框架 进行开发。

2、STM32CubeMX SPI相关配置
(1)定时器配置
在这里插入图片描述

(2)PWM配置
在这里插入图片描述


四、Vscode代码讲解

1、蜂鸣器相关的结构体定义以及初始化

typedef struct
{
  uint8_t (*Read_Deep)(void);                     
	void (*Deep_Enable)(void);                     
	void (*Deep_Disable)(void);                     
} Deep_t;
extern Deep_t Deep;

Deep_t Deep ={
    Read_Deep,
    Deep_Enable,
    Deep_Disable
};

2、deep使能(PWM)具体函数实现

static void Deep_Enable(void)
{
  HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_1);
} 
                  
static void Deep_Disable(void)
{
  HAL_TIM_PWM_Stop(&htim1, TIM_CHANNEL_1);
}     

3、在使能PWM后可直接调整ARR和CCR1来控制频率和占空比,使蜂鸣器发出不同音调

// 时钟:1MHz
// PWM频率:1MHz/ARR
// 占空比:CRR1
static uint32_t CNT=0;
if(CNT++ > 3)
{
	CNT=0;

	TIM1->ARR -= 10;
	if( TIM1->ARR <= 250 )
		TIM1->ARR = 2000;
	
	TIM1->CCR1 = TIM1->ARR/2;
}

五、结果演示

实验效果:PWM频率从500Hz到4KHz变化,占空比为对应的一半。
请添加图片描述

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

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

相关文章

当我开始学习人工智能:知识表示方法

加油加油&#xff0c;五一前复习玩&#xff0c;五一就可以出去玩啦 一、状态空间法&#xff08;State Space Representation&#xff09; 问题求解技术主要是两个方面 问题的表示求解的方法 状态空间法 状态算符状态空间方法 1.1 问题状态描述 定义 状态&#xff1a;描述某类不…

电感耦合等离子体原子发射光谱法(ICP-AES)

一、定义 电感耦合等离子体原子发射光谱法(ICP-AES)&#xff0c;是以电感耦合等离子矩为激发光源的光谱分析方法&#xff0c;具有准确度高和精密度高、检出限低、测定快速、线性范围宽、可同时测定多种元素等优点&#xff0c;国外已广泛用于环境样品及岩石、矿物、金属等样品中…

SimpleDateFormat模式字符串格式

SimpleDateFormat模式字符串 new SimpleDateFormat(String parm); parm为一个字符串,表示格式. 时间模式 字母 时间元素 表示 示例 y 年 Year 1996; 96 M 年中的月份 Month July; Jul; 07 D 年中的天数 Number 200 d 月份中的天数 Number 31;30;28;29 H 一天中的小时(24小时…

【MySQL】表的基本操作

1、数据类型 1.1 数值类型 数据类型大小说明bit[(M)]M指定位数&#xff0c;默认为1二进制&#xff0c;M范围从1到64&#xff0c;存储数值范围从0到2^M-1tinyint1字节smallint2字节int4字节bigint8字节float(M,D)4字节单精度&#xff0c;M指定长度&#xff0c;D 指定小数位数&am…

Peach Fuzzer漏洞挖掘实战

概述 本文主要介绍模糊测试技术&#xff0c;开源模糊测试框架Peach Fuzzer&#xff0c;最后使用Peach Fuzzer对Modbus Slave软件进行漏洞挖掘&#xff0c;并成功挖掘到0DAY漏洞。&#xff08;文中涉及的漏洞已提交到国家漏洞库&#xff0c;现已修复&#xff09; 模糊测试技术 模…

电影《绿皮书》鉴赏

**《绿皮书》**由彼得法雷尔执导&#xff0c;维戈莫滕森和马萨拉阿里主演&#xff0c;改编自关于保镖托尼的真实故事。20世纪60年代&#xff0c;美国的种族关系紧张&#xff0c;黑人音乐家很少有机会演出。作为当时为数不多的黑人钢琴家之一&#xff0c;唐参加了许多音乐会巡演…

[chapter27][PyTorch][visdom]

前言&#xff1a; Visdom是Facebook专为PyTorch开发的实时可视化工具包&#xff0c;相当于TensorFlow中的Tensorboard&#xff0c;灵活高效且界面美观。 目录&#xff1a; 1&#xff1a; 环境安装 2&#xff1a; 参数简介 3&#xff1a; 监听单一数据 4&#xff1a; 监听多个数…

晶振电路并联一个电阻作用

晶振电路并联一个电阻的作用 前言 在设计电路时&#xff0c;通常看到一些主控的外部高速晶振并联了一个1MΩ的电阻&#xff0c;但是发现有的电路不用也可以正常工作&#xff0c;对这个就有点好奇啦&#xff1f; 电路图如下&#xff1a; 实际上晶振电路在工作时没有并联一个1…

如何使用Sublime来规范化代码的格式,让代码更加规范整齐,批量修改代码

如何使用Sublime来规范化代码的格式&#xff0c;让代码更加规范整齐&#xff0c;批量修改代码 设备/引擎&#xff1a;Mac&#xff08;11.7&#xff09;/cocos 开发工具&#xff1a;Sublime Text 开发语言&#xff1a;c/java 代码开发中经常需要将代码进行规范化处理&#x…

PHP +python+nodejs+springboot+vue 校园电子资料资源管理系统

能实现不出家门就可以通过网络进行系统管理&#xff0c;交易等&#xff0c;而且过程简单、快捷。同样的&#xff0c;在人们的工作生活中&#xff0c;也就需要互联网技术来方便人们的日常工作生活&#xff0c;实现工作办公的自动化处理&#xff0c;实现信息化&#xff0c;无纸化…

js录音支持h5 pc ios android

最近在做h5录音的页面要求可暂停录音,继续录音&#xff0c;写好后发现不兼容ios,无奈只能找兼容方法&#xff0c;找了一天也没找到&#xff0c;后来看到一个网站在ios上可以暂停录音&#xff0c;后来引入他的js文件果然能用了 网站放下面了 Recorder H5: 用于html5网页中的前…

ASP.NET ZERO Crack坚实的体系结构

ASP.NET ZERO Crack坚实的体系结构 据说ASP.NET ZERO是互联网应用程序新流程的起点&#xff0c;该流程包含现代用户界面&#xff0c;具有强大的体系结构和完整的源代码。它可以通过提供共享的应用程序来节省用户时间&#xff0c;这些应用程序是visual studio预构建解决方案所必…

PostMan笔记(一)简介+安装和设置

1. PostMan简介 Postman 是一款功能强大的 API 开发工具&#xff0c;支持多种 HTTP 请求方法和测试断言&#xff0c;能够快速调试和测试 API 接口&#xff0c;提高开发效率。本文将介绍 Postman 工具的使用方法。 安装和设置 首先&#xff0c;需要下载和安装 Postman 工具。…

[ChatGPT]-02-ChatGPT对安全的影响和开源的LLM大模型资源汇总

文章目录 0.ChatGPT大模型带来的影响0.1 ChatGPT带来信息化革命性创新&#xff0c;目前尚不能处理专业知识但成长很快0.2 Chat GPT为网安行业带来新的创新方向&#xff0c;也将引领新一轮投融资热潮0.2.1 攻击方发起网络攻击的门槛降低0.2.2 防守方合理使用ChatGPT可大幅减少安…

零基础入门前端--JavaScript 循环结构语句

循环控制 控制程序重复执行若干次相同或似的逻辑&#xff0c;理解并正确使用循环控制&#xff0c;需要搞清楚循环的3个要素&#xff1a;起始值、变化量、终止条件。 ○ 起始值循环的起点&#xff0c;可以是【任意数据类型值】 ○ 变化量是指【改变起始值的方式】 ○ 终止条…

深度学习算法及卷积神经网络

目录标题 传统神经网络矩阵计算&#xff1a;正则化&#xff1a;激活函数sigmoid损失函数前向传播激活函数Relu数据预处理DROP-OUT 卷积神经网络(CNN)1.CNN网络的构成2. 卷积层2.1 卷积的计算⽅法2.2 padding2.3 stride2.4 多通道卷积2.5 多卷积核卷积2..6 特征图大小 3. 池化层…

无法打开“fsevents.node

在Mac 打开vue项目的时候「c c」出现这个&#xff0c;可能是一个项目多个ide打开&#xff0c; 如何解决呢&#xff1f; 图1 把 node_modules 文件夹删了&#xff0c;在编译一把。也就是 npm install npm install

配置中心Disconf、SpringCloudConfig、Apollo、Nacos比较

Config Server Center 1、Disconf 1、1简介 2014年7月百度开源的配置管理中心&#xff0c;同样具备配置的管理能力&#xff0c;不过目前已经不维护了&#xff0c;最近的一次提交是两年前了。 2、SpringCloudConfig 2-1、简介 2014年9月开源&#xff0c;Spring Cloud 生态…

技术选型|日志采集和管理工具您都了解哪些,看这篇就够了

简介 对于日志管理当前网络上提供了大量的日志工具&#xff0c;今天就给大家分析总结一下这些常用工具的特点&#xff0c;希望对你们在选型时有所帮助&#xff0c;如果有用记得一键三连。 1、Filebeat Filebeat是用于转发和集中日志数据的轻量级传送程序。作为服务器上的代理…

2_STM32最小系统设计

MCU最小系统&#xff1a;一个MCU在正常工作中&#xff0c;正常下载程序前提下的最简电路。 最简电路包含&#xff1a; 供电电路、复位电路、时钟电路(高速时钟、低速时钟)&#xff1a;2个外部晶振、Boot启动模式选择(跳线帽)、下载电路(uart/JTAG/SWD)、后备电池VBAT(维持后备区…