二、基于STM32F103C8T6的蜂鸣器发声设计

目录

一、引言

二、实验器材和材料

三、实验原理与实验步骤

3.1硬件连接

3.2 蜂鸣器接线图

四、实验步骤

五、软件设计

5.1 延时函数

5.2 延时函数头文件

         5.3 主函数

六、实验结果

6.1 实物接线图

6.2 实验现象

七、实验总结


一、引言

蜂鸣器是一种常用的电子器件,通过改变电压信号可以产生不同频率的声音。本实验旨在通过使用STM32F1.3C8T6微控制器,设计和实现一个简单的蜂鸣器发声电路。

二、实验器材和材料

  • 杜邦线
  • STM32最小系统板
  • 蜂鸣器
  • ST-Link

三、实验原理与实验步骤

3.1硬件连接

将STM32F1.3C8T6开发板上的一个GPIO口与蜂鸣器和电阻连接起来。根据蜂鸣器的参数,选择合适的电阻以限制电流,防止蜂鸣器烧毁。

3.2 蜂鸣器接线图

四、实验步骤

  1. 硬件接线
  2. 初始化:设置正确的时钟频率和GPIO控制。
  3. 配置引脚:选择用于连接蜂鸣器的GPIO引脚,并将其配置为输出模式。
  4. 发声控制:通过改变GPIO引脚的高低电平,控制蜂鸣器的发声。根据需要发出的音调,设置不同的高低电平模式和时间间隔。
  5. 烧录程序

五、软件设计

5.1 延时函数

#include "stm32f10x.h"

/**
  * @brief  微秒级延时
  * @param  xus 延时时长,范围:0~233015
  * @retval 无
  */
void Delay_us(uint32_t xus)
{
	SysTick->LOAD = 72 * xus;				//设置定时器重装值
	SysTick->VAL = 0x00;					//清空当前计数值
	SysTick->CTRL = 0x00000005;				//设置时钟源为HCLK,启动定时器
	while(!(SysTick->CTRL & 0x00010000));	//等待计数到0
	SysTick->CTRL = 0x00000004;				//关闭定时器
}

/**
  * @brief  毫秒级延时
  * @param  xms 延时时长,范围:0~4294967295
  * @retval 无
  */
void Delay_ms(uint32_t xms)
{
	while(xms--)
	{
		Delay_us(1000);
	}
}
 
/**
  * @brief  秒级延时
  * @param  xs 延时时长,范围:0~4294967295
  * @retval 无
  */
void Delay_s(uint32_t xs)
{
	while(xs--)
	{
		Delay_ms(1000);
	}
} 

5.2 延时函数头文件

#ifndef __DELAY_H
#define __DELAY_H

void Delay_us(uint32_t us);
void Delay_ms(uint32_t ms);
void Delay_s(uint32_t s);

#endif

5.3 主函数

#include "stm32f10x.h"                  // Device header
#include "Delay.h"

int main(void)
{
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
	
	GPIO_InitTypeDef GPIO_InitStructure;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOB, &GPIO_InitStructure);
	
	while (1)
	{
		GPIO_ResetBits(GPIOB, GPIO_Pin_12);
		Delay_ms(100);
		GPIO_SetBits(GPIOB, GPIO_Pin_12);
		Delay_ms(100);
		GPIO_ResetBits(GPIOB, GPIO_Pin_12);
		Delay_ms(100);
		GPIO_SetBits(GPIOB, GPIO_Pin_12);
		Delay_ms(700);
	}
}

六、实验结果

6.1 实物接线图

6.2 实验现象

完成以上步骤后,将代码下载到STM32F103C8T6开发板上。

打开电源,如果一切正常,你将会听到蜂鸣器发出持续高低电平交替的声音。

在实际实验中,你可以根据需要修改发声的频率、时间间隔和模式,以实现不同的声音效果。

七、实验总结

通过本实验,你学习了基于STM32F103C8T6微控制器的蜂鸣器发声设计和实现。

这对进一步学习嵌入式系统开发和音频处理提供了基础。

  • 3
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凉辰梦凡星

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值