/* USER CODE BEGIN 2 */
// 中音简谱 1‑7 半周期延时(ms)
#define DO 191
#define RE 170
#define MI 152
#define FA 143
#define SOL 127
#define LA 113
#define SI 101
#define REST 0 //休止符
//播放单个音符函数
void Play_Note(uint16_t tone,uint16_t beat)
{
uint16_t i;
if(tone == REST)
{
HAL_Delay(beat);
return;
}
for(i=0;i<beat/(tone*2);i++)
{
HAL_GPIO_TogglePin(GPIOG,GPIO_PIN_6);
HAL_Delay(tone);
}
HAL_GPIO_WritePin(GPIOG,GPIO_PIN_6,GPIO_PIN_RESET);
}
//小星星乐谱:{音调,时长,音调,时长...}
uint16_t music\[\]={
DO,200, DO,200,
SOL,200,SOL,200,
LA,200, LA,200,
SOL,400,
FA,200, FA,200,
MI,200, MI,200,
RE,200, RE,200,
DO,400,
REST,300
};
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
uint16_t len = sizeof(music)/sizeof(music0);
uint16_t i;
for(i=0; i<len; i += 2)
{
Play_Note(musici, musici+1);
}
HAL_Delay(1000); //整首播放完停顿1秒,循环再播
/* USER CODE END WHILE */