【GD32L233C-START测评】+触摸式MP3音乐播放器的实现
[复制链接]
本帖最后由 jinglixixi 于 2022-3-9 21:13 编辑
GD32L233C-START开发板与迪文智能屏相结合,能快速构建一个触摸式的MP3音乐播放器,其界面显示见图1所示。
图1 界面形式
在操作过程中,借助智能屏的触摸性能只需在歌曲的名称上轻轻一点即可。此外,由于一屏的显示内容有限,还提供触摸屏幕的上下两端来实现翻页处理,以通过更多的选择项。
在播放过程中,还可以使用屏上的2个绿色键来控制播放的暂停及恢复播放。而屏上2个红色的按键,则可以控制播放音量的大小调节。
在功能设计方面,主要使用了数据变量显示控件、基础触控控件及增量调节控件,其中数据变量显示控件是用于显示选择值,基础触控控件是用于页面切换及歌曲选择,增量调节控件用于音量调节,其设计界面见图2所示。
图2 设计界面
由于要区分选取歌曲的编号与调节音量值的差别,故设有2个变量地址来分别存放其变量值,其中地址0x1000用于存放选择的歌曲编号,而地址0x1002则用于存放音量调节值(0-32)。当触摸屏幕时,就会把相应的选择值通过串口发送出去,这就是智能屏的作用。
作为处理的核心GD32L233C-START开发板来讲,它的工作就是以串口来接收智能屏的信息,并将其转换为MP3语音模块所能接受的串口指令。
由于MP3语音模块所使用的串行通讯波特率是固定的9600bps,故智能屏和开发板的通讯波特率也一同被设置在9600bps上。
智能屏所发送的内容如图3所示,开发板的作用则是进行相应的处理和格式转换,以选取2号歌曲为例,其转换为MP3指令时如图4所示。
图3智能屏输出格式
图4 格式转换
在信息转换过程中,开发板是以中断方式来接收智能屏的输出,并以非中断的方式来发送MP3播放指令。
实现该功能的主程序为:
int main(void)
{
int i;
uint8_t n,m;
systick_config();
nvic_irq_enable(USART0_IRQn, 0);
gd_eval_com_init(EVAL_COM);
delay_1ms(200);
setVolume(12);
send_Volume ();
delay_1ms(20);
usart_interrupt_disable(USART0, USART_INT_TBE);
while(1)
{
rx_counter=0;
delay_1ms(10);
usart_interrupt_enable(EVAL_COM, USART_INT_RBNE);
while(rx_counter < nbr_data_to_read);
n=rx_buffer[8];
m=rx_buffer[5];
if(m==2)
{
setVolume(n);
send_Volume ();
}
else
{
if(n<num)
{
playn(n);
send();
}
if(n== pause)
{
send_ pause ();
}
if(n== play)
{
send_ play ();
}
}
delay_1ms(200);
}
}
经实际测试,其触控播放操作还是十分顺手和方便的。
触摸式MP3播放器功能演示:
|