【GD32307E-START】+MP3播放控制
[复制链接]
本帖最后由 jinglixixi 于 2020-12-17 18:59 编辑
GD32307E-START提供了与外部通讯的功能,并可用USB接口转换为串口通讯,其接口电路如图1所示。
图1 USB转串口
同样也可以使用该串口来控制MP3模块进行播放,其整体电路构成如图2所示。
图2 整体构成
为了突出通讯功能的测试,这里直接用串口来输出歌单内容,其形式如图3所示。
图3 播放内容输出
实现图示功能的主程序如下:
int main(void)
{
uint8_t i,n;
/* initialize the LEDs */
led_init();
/* configure systick */
systick_config();
/* configure EVAL_COM1 */
gd_eval_com_init(EVAL_COM1);
/* enable USART and GPIOA clock */
rcu_periph_clock_enable(RCU_GPIOA);
rcu_periph_clock_enable(RCU_USART0);
rcu_periph_clock_enable(RCU_USART1);
/* configure USART0 Tx as alternate function push-pull */
gpio_init(GPIOB, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_6);
/* configure USART1 Tx as alternate function push-pull */
gpio_init(GPIOA, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_2);
/* USART0 and USART1 baudrate configuration */
usart_baudrate_set(USART0, 115200);
usart_baudrate_set(USART1, 115200);
/* enable USART0 half duplex mode*/
usart_halfduplex_enable(USART0);
/* enable USART1 half duplex mode*/
usart_halfduplex_enable(USART1);
/* configure USART transmitter */
usart_transmit_config(USART0, USART_TRANSMIT_ENABLE);
usart_transmit_config(USART1, USART_TRANSMIT_ENABLE);
/* configure USART receiver */
usart_receive_config(USART0, USART_RECEIVE_ENABLE);
usart_receive_config(USART1, USART_RECEIVE_ENABLE);
/* enable USART */
usart_enable(USART0);
usart_enable(USART1);
printf("\r\n USART & MP3 example:\r\n");
setVolume(24);
while(1)
{
if(RESET == gd_eval_key_state_get(KEY_WAKEUP))
{
// turn on LED1
gd_eval_led_on(LED1);
n++;
if(n>5) n=0;
if(n==0) printf("\r\n澎湖湾:\r\n");
if(n==1) printf("\r\n 放心去飞:\r\n");
if(n==2) printf("\r\n 味道:\r\n");
if(n==3) printf("\r\n 鸿雁:\r\n");
if(n==4) printf("\r\n 海阔天空:\r\n");
if(n==5) printf("\r\n 期待:\r\n");
playn(n);
for (i=0;i<10;i++)
{
while(RESET == usart_flag_get(USART1, USART_FLAG_TBE));
usart_data_transmit(USART1, cmd3);
}
delay_1ms(300);
}
else
{
// turn off LED1
gd_eval_led_off(LED1);
delay_1ms(300);
}
}
}
|