【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;
-
- led_init();
-
- systick_config();
-
- gd_eval_com_init(EVAL_COM1);
-
- rcu_periph_clock_enable(RCU_GPIOA);
- rcu_periph_clock_enable(RCU_USART0);
- rcu_periph_clock_enable(RCU_USART1);
-
- gpio_init(GPIOB, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_6);
-
- gpio_init(GPIOA, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_2);
-
- usart_baudrate_set(USART0, 115200);
- usart_baudrate_set(USART1, 115200);
-
- usart_halfduplex_enable(USART0);
-
- usart_halfduplex_enable(USART1);
-
- usart_transmit_config(USART0, USART_TRANSMIT_ENABLE);
- usart_transmit_config(USART1, USART_TRANSMIT_ENABLE);
-
- usart_receive_config(USART0, USART_RECEIVE_ENABLE);
- usart_receive_config(USART1, USART_RECEIVE_ENABLE);
-
- 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))
- {
-
- 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
- {
-
- gd_eval_led_off(LED1);
- delay_1ms(300);
- }
- }
- }
|