STM32蜂鸣器|音乐|代码谱->BrooklynBloodPop!

型号:STM32G030C8Tx

无源蜂鸣器

 

音调定义:

图来自网络
图来自网络,侵删

 

#define  ZERO  3000
	#define  R  1000000 //F_CLOCK/(psc+1)=48M/(47+1)=1M
	//set tune *****************
	#define  L1       (R/262)-1      //C获do或1
	#define  half_L1  (R/277)-1      //C#(下面同理)     
	#define  L2       (R/294)-1        
	#define  half_L2  (R/311)-1
	#define  L3       (R/330)-1
	#define  L4       (R/349)-1
	#define  half_L4  (R/370)-1
	#define  L5       (R/392)-1
	#define  half_L5  (R/410)-1
	#define  L6       (R/440)-1
	#define  half_L6  (R/466)-1
	#define  L7       (R/494)-1

	#define  M1       (R/523)-1
	#define  half_M1 (R/554)-1 
	#define  M2       (R/587)-1
	#define  half_M2  (R/622)-1
	#define  M3       (R/659)-1
	#define  M4       (R/698)-1
	#define  half_M4  (R/740)-1
	#define  M5       (R/784)-1
	#define  half_M5  (R/831)-1
	#define  M6       (R/880)-1
	#define  half_M6  (R/932)-1
	#define  M7       (R/988)-1

	#define  H1       (R/1046)-1 
	#define  half_H1 (R/1109)-1
	#define  H2       (R/1175)-1
	#define  half_H2  (R/1245)-1
	#define  H3       (R/1318)-1
	#define  H4       (R/1397)-1
	#define  half_H4  (R/1480)-1
	#define  H5       (R/1568)-1
	#define  half_H5  (R/1661)-1
	#define  H6       (R/1760)-1
	#define  half_H6  (R/1865)-1
	#define  H7       (R/1967)-1

使用PWM控制,对应定时器反向通道

设计延迟:

const uint32_t Delayer=400;    //此处我以400ms为一拍分割


void tim1(uint16_t tune)
{
	 __HAL_TIM_SET_AUTORELOAD(&htim17,tune);
	 __HAL_TIM_SET_COMPARE(&htim17,TIM_CHANNEL_1,0.5*tune);
	 HAL_Delay(Delayer);       //用了MXCUBE和HAL库
}


/* 预热
    half_M4
	half_H1        
	half_H4
    H3
	half_H1
*/
	
/*高潮
    
第一段
    half_M4
	half_M1
	M7 
	M6 
	half_M5
	M3

	M6
	M7 
	half_H1
	M3
    half_M5
	M6

第二段
	half_M4
	half_M1
	M7  
	M6
	half_M5
	M3
	
    M1
	M3
	half_M5
	half_M4
	half_M5
	M6

*/

P.S.没多少乐理基础,拿模拟键盘乱扒的,if有错,见谅

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

夢靈子DMC

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

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

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

打赏作者

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

抵扣说明:

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

余额充值