【GD32L233C-START测评】+触摸式MP3音乐播放器的实现
本帖最后由 jinglixixi 于 2022-3-9 21:13 编辑<p style="text-align:justify">GD32L233C-START开发板与迪文智能屏相结合,能快速构建一个触摸式的MP3音乐播放器,其界面显示见图1所示。</p>
<p>图1 界面形式</p>
<p>在操作过程中,借助智能屏的触摸性能只需在歌曲的名称上轻轻一点即可。此外,由于一屏的显示内容有限,还提供触摸屏幕的上下两端来实现翻页处理,以通过更多的选择项。</p>
<p>在播放过程中,还可以使用屏上的2个绿色键来控制播放的暂停及恢复播放。而屏上2个红色的按键,则可以控制播放音量的大小调节。</p>
<p>在功能设计方面,主要使用了数据变量显示控件、基础触控控件及增量调节控件,其中数据变量显示控件是用于显示选择值,基础触控控件是用于页面切换及歌曲选择,增量调节控件用于音量调节,其设计界面见图2所示。</p>
<p>图2 设计界面</p>
<p>由于要区分选取歌曲的编号与调节音量值的差别,故设有2个变量地址来分别存放其变量值,其中地址0x1000用于存放选择的歌曲编号,而地址0x1002则用于存放音量调节值(0-32)。当触摸屏幕时,就会把相应的选择值通过串口发送出去,这就是智能屏的作用。</p>
<p>作为处理的核心GD32L233C-START开发板来讲,它的工作就是以串口来接收智能屏的信息,并将其转换为MP3语音模块所能接受的串口指令。</p>
<p>由于MP3语音模块所使用的串行通讯波特率是固定的9600bps,故智能屏和开发板的通讯波特率也一同被设置在9600bps上。</p>
<p>智能屏所发送的内容如图3所示,开发板的作用则是进行相应的处理和格式转换,以选取2号歌曲为例,其转换为MP3指令时如图4所示。</p>
<p>图3智能屏输出格式</p>
<p>图4 格式转换</p>
<p>在信息转换过程中,开发板是以中断方式来接收智能屏的输出,并以非中断的方式来发送MP3播放指令。</p>
<p>实现该功能的主程序为:</p>
<pre>
<code class="language-cpp">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;
m=rx_buffer;
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);
}
}</code></pre>
<p style="text-align:justify">经实际测试,其触控播放操作还是十分顺手和方便的。</p>
<p>触摸式MP3播放器功能演示:</p>
<p><iframe allowfullscreen="true" frameborder="0" height="450" src="//player.bilibili.com/player.html?bvid=1Xi4y1k7mY&page=1" style="background:#eee;margin-bottom:10px;" width="700"></iframe></p>
页:
[1]