From 7e749a8a7bc649cc25aa150455c7129797ef9fec Mon Sep 17 00:00:00 2001 From: sakimisu <1203593632@qq.com> Date: Fri, 2 Dec 2022 21:10:18 +0800 Subject: [PATCH] fix audio first start read --- .../audio_v1_mic_speaker_multichan_template.c | 20 +++++++++---------- .../audio_v2_mic_speaker_multichan_template.c | 8 ++++---- demo/audio_v2_speaker_multichan_template.c | 11 +++++----- 3 files changed, 20 insertions(+), 19 deletions(-) diff --git a/demo/audio_v1_mic_speaker_multichan_template.c b/demo/audio_v1_mic_speaker_multichan_template.c index b5152a3f..59c3fa6e 100644 --- a/demo/audio_v1_mic_speaker_multichan_template.c +++ b/demo/audio_v1_mic_speaker_multichan_template.c @@ -130,6 +130,9 @@ const uint8_t audio_descriptor[] = { 0x00 }; +USB_NOCACHE_RAM_SECTION USB_MEM_ALIGNX uint8_t write_buffer[2048]; +USB_NOCACHE_RAM_SECTION USB_MEM_ALIGNX uint8_t out_buffer[AUDIO_OUT_PACKET]; + volatile bool tx_flag = 0; volatile bool rx_flag = 0; @@ -137,6 +140,8 @@ void usbd_audio_open(uint8_t intf) { if (intf == 1) { rx_flag = 1; + /* setup first out ep read transfer */ + usbd_ep_start_read(AUDIO_OUT_EP, out_buffer, AUDIO_OUT_PACKET); printf("OPEN1\r\n"); } else { tx_flag = 1; @@ -160,15 +165,10 @@ void usbd_audio_close(uint8_t intf) #define AUDIO_OUT_EP_MPS 64 #endif -USB_NOCACHE_RAM_SECTION USB_MEM_ALIGNX uint8_t write_buffer[2048]; -USB_NOCACHE_RAM_SECTION USB_MEM_ALIGNX uint8_t out_buffer[AUDIO_OUT_PACKET]; - volatile bool ep_tx_busy_flag = false; void usbd_configure_done_callback(void) { - /* setup first out ep read transfer */ - usbd_ep_start_read(AUDIO_OUT_EP, out_buffer, AUDIO_OUT_PACKET); } void usbd_audio_out_callback(uint8_t ep, uint32_t nbytes) @@ -216,11 +216,11 @@ void audio_test() { while (1) { if (tx_flag) { -// memset(write_buffer, 'a', 2048); -// ep_tx_busy_flag = true; -// usbd_ep_start_write(AUDIO_IN_EP, write_buffer, 2048); -// while (ep_tx_busy_flag) { -// } + // memset(write_buffer, 'a', 2048); + // ep_tx_busy_flag = true; + // usbd_ep_start_write(AUDIO_IN_EP, write_buffer, 2048); + // while (ep_tx_busy_flag) { + // } } } } diff --git a/demo/audio_v2_mic_speaker_multichan_template.c b/demo/audio_v2_mic_speaker_multichan_template.c index 805a9632..d92752a6 100644 --- a/demo/audio_v2_mic_speaker_multichan_template.c +++ b/demo/audio_v2_mic_speaker_multichan_template.c @@ -192,6 +192,8 @@ uint8_t audio_descriptor[] = { 0x00 }; +USB_NOCACHE_RAM_SECTION USB_MEM_ALIGNX uint8_t out_buffer[AUDIO_OUT_EP_MPS]; + volatile bool tx_flag = 0; volatile bool rx_flag = 0; @@ -199,6 +201,8 @@ void usbd_audio_open(uint8_t intf) { if (intf == 1) { rx_flag = 1; + /* setup first out ep read transfer */ + usbd_ep_start_read(AUDIO_OUT_EP, out_buffer, AUDIO_OUT_EP_MPS); USB_LOG_RAW("OPEN1\r\n"); } else { tx_flag = 1; @@ -236,12 +240,8 @@ void usbd_audio_set_sampling_freq(uint8_t entity_id, uint8_t ep_ch, uint32_t sam #define AUDIO_OUT_EP_MPS 64 #endif -USB_NOCACHE_RAM_SECTION USB_MEM_ALIGNX uint8_t out_buffer[AUDIO_OUT_EP_MPS]; - void usbd_configure_done_callback(void) { - /* setup first out ep read transfer */ - usbd_ep_start_read(AUDIO_OUT_EP, out_buffer, AUDIO_OUT_EP_MPS); } void usbd_audio_iso_out_callback(uint8_t ep, uint32_t nbytes) diff --git a/demo/audio_v2_speaker_multichan_template.c b/demo/audio_v2_speaker_multichan_template.c index c1de77cf..c4b7b481 100644 --- a/demo/audio_v2_speaker_multichan_template.c +++ b/demo/audio_v2_speaker_multichan_template.c @@ -14,7 +14,7 @@ #define AUDIO_OUT_EP 0x01 -#define AUDIO_FREQ 48000 +#define AUDIO_FREQ 48000 #define HALF_WORD_BYTES 2 //2 half word (one channel) #define SAMPLE_BITS 16 //16 bit per channel @@ -146,11 +146,16 @@ const uint8_t audio_descriptor[] = { #endif 0x00 }; + +USB_NOCACHE_RAM_SECTION USB_MEM_ALIGNX uint8_t out_buffer[AUDIO_OUT_EP_MPS]; + volatile bool rx_flag = 0; void usbd_audio_open(uint8_t intf) { rx_flag = 1; + /* setup first out ep read transfer */ + usbd_ep_start_read(AUDIO_OUT_EP, out_buffer, AUDIO_OUT_EP_MPS); USB_LOG_RAW("OPEN\r\n"); } void usbd_audio_close(uint8_t intf) @@ -165,12 +170,8 @@ void usbd_audio_close(uint8_t intf) #define AUDIO_OUT_EP_MPS 64 #endif -USB_NOCACHE_RAM_SECTION USB_MEM_ALIGNX uint8_t out_buffer[AUDIO_OUT_EP_MPS]; - void usbd_configure_done_callback(void) { - /* setup first out ep read transfer */ - usbd_ep_start_read(AUDIO_OUT_EP, out_buffer, AUDIO_OUT_EP_MPS); } void usbd_audio_iso_out_callback(uint8_t ep, uint32_t nbytes)