项目相关链接:
1.STM32掌机:音乐播放器
2.STM32掌机:贪吃蛇
3.STM32掌机:俄罗斯方块
(一)效果展示
通过stm32 实现了MP3功能,需要写单线串口,之前已经给出
(二)软件设计
/**********************************************************************************
该函数用于MP3任务的实现
时间:2019/5/15
作者:杨越
***************************************************************************/
void music1(void)
{
SendData(0x0a);
SendData(0x01);
SendData(0x0b);
}
void music2(void)
{
SendData(0x0a);
SendData(0x02);
SendData(0x0b);
}
void music3(void)
{
SendData(0x0a);
SendData(0x03);
SendData(0x0b);
}
void music4(void)
{
SendData(0x0a);
SendData(0x04);
SendData(0x0b);
}
void music5(void)
{
SendData(0x0a);
SendData(0x05);
SendData(0x0b);
}
void music6(void)
{
SendData(0x0a);
SendData(0x06);
SendData(0x0b);
delay_ms(1000);
}
void soundoff(void)
{
SendData(0x0a);
SendData(0x00);
SendData(0x00);
SendData(0x0c);
}
void soundloud(void)
{
SendData(0x0a);
SendData(0x03);
SendData(0x00);
SendData(0x0c);
}
void sounddown(void)
{
SendData(0x0a);
SendData(0x01);
SendData(0x00);
SendData(0x0c);
}
void soundup(void)
{
SendData(0x0a);
SendData(0x02);
SendData(0x00);
SendData(0x0c);
}
void MUSIC_TASK(void)
{
u8 keystore;//定义一个数用于存放键值
u8 flag=0;//用于判断MP3当前状态
while(1)
{
if(flag==0)
{
LCD_Clear(YELLOW);
Gui_StrCenter(0, 0,BLUE, WHITE, "欢迎使用",16,0);
Gui_StrCenter(0, 16,BLUE, WHITE, "音乐播放功能",16,0);
Gui_StrCenter(0, 32,BLUE, WHITE, "请选择曲目",16,0);
}
else
{
LCD_Clear(GREEN);
Gui_StrCenter(0, 32,BLUE, WHITE, "请欣赏音乐",16,0);
}
keystore=KEY_Scan();
switch(keystore)
{
case 1: music1();break;
case 2: music2();break;
case 3: music3();break;
case 4: music4();break;
case 5: music5();break;
case 6: music6();break;
case 7: sounddown();break;
case 8: soundup();break;
case 9: soundoff();break;
case 10: soundloud();break;
default : printf("瞎搞");break;
}
flag=1;
}
}