AUDIO DISCO_F769NI audioloop basic example
Dependencies: BSP_DISCO_F769NI
Revision 2:db1aee306f50, committed 2019-11-22
- Comitter:
- Jerome Coutant
- Date:
- Fri Nov 22 16:02:58 2019 +0100
- Parent:
- 1:f849e36f029e
- Commit message:
- Update with STM32Cube_FW_F7_V1.15.0
Changed in this revision
diff -r f849e36f029e -r db1aee306f50 .hgignore --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/.hgignore Fri Nov 22 16:02:58 2019 +0100 @@ -0,0 +1,2 @@ +BUILD +mbed-os/
diff -r f849e36f029e -r db1aee306f50 BSP_DISCO_F769NI.lib --- a/BSP_DISCO_F769NI.lib Tue Apr 04 09:42:54 2017 +0000 +++ b/BSP_DISCO_F769NI.lib Fri Nov 22 16:02:58 2019 +0100 @@ -1,1 +1,1 @@ -https://mbed.org/teams/ST/code/BSP_DISCO_F769NI/#39d2c2c79afa +https://mbed.org/teams/ST/code/BSP_DISCO_F769NI/#d13d7c447539
diff -r f849e36f029e -r db1aee306f50 main.cpp --- a/main.cpp Tue Apr 04 09:42:54 2017 +0000 +++ b/main.cpp Fri Nov 22 16:02:58 2019 +0100 @@ -1,51 +1,51 @@ #include "mbed.h" #include "stm32f769i_discovery.h" #include "stm32f769i_discovery_audio.h" - + static void CopyBuffer(int16_t *pbuffer1, int16_t *pbuffer2, uint16_t BufferSize); - + #define SCRATCH_BUFF_SIZE 1024 #define RECORD_BUFFER_SIZE 4096 - + typedef enum { BUFFER_OFFSET_NONE = 0, BUFFER_OFFSET_HALF = 1, BUFFER_OFFSET_FULL = 2, } BUFFER_StateTypeDef; - + volatile uint32_t audio_rec_buffer_state = BUFFER_OFFSET_NONE; int32_t Scratch[SCRATCH_BUFF_SIZE]; - + /* Buffer containing the PCM samples coming from the microphone */ int16_t RecordBuffer[RECORD_BUFFER_SIZE]; - + /* Buffer used to stream the recorded PCM samples towards the audio codec. */ int16_t PlaybackBuffer[RECORD_BUFFER_SIZE]; - + int main() { uint32_t audio_loop_back_init = RESET ; - + printf("\n\nAUDIO LOOPBACK EXAMPLE FOR DISCO-F769NI START:\n"); - + /* Initialize Audio Recorder with 4 channels to be used */ if (BSP_AUDIO_IN_Init(BSP_AUDIO_FREQUENCY_44K, DEFAULT_AUDIO_IN_BIT_RESOLUTION, 2*DEFAULT_AUDIO_IN_CHANNEL_NBR) == AUDIO_ERROR) { printf("BSP_AUDIO_IN_Init error\n"); } - + /* Allocate scratch buffers */ if (BSP_AUDIO_IN_AllocScratch (Scratch, SCRATCH_BUFF_SIZE) == AUDIO_ERROR) { printf("BSP_AUDIO_IN_AllocScratch error\n"); } - + /* Start Recording */ if (BSP_AUDIO_IN_Record((uint16_t*)&RecordBuffer[0], RECORD_BUFFER_SIZE) == AUDIO_ERROR) { printf("BSP_AUDIO_IN_Record error\n"); } uint8_t ChannelNumber = BSP_AUDIO_IN_GetChannelNumber(); - + audio_rec_buffer_state = BUFFER_OFFSET_NONE; - + while (1) { /* 1st or 2nd half of the record buffer ready for being copied to the playbakc buffer */ if(audio_rec_buffer_state != BUFFER_OFFSET_NONE) { @@ -62,7 +62,7 @@ } else { BSP_AUDIO_OUT_SetAudioFrameSlot(CODEC_AUDIOFRAME_SLOT_02); } - + /* Play the recorded buffer */ if (BSP_AUDIO_OUT_Play((uint16_t *) &PlaybackBuffer[0], 2*RECORD_BUFFER_SIZE) == AUDIO_ERROR) { printf("BSP_AUDIO_OUT_Play error\n"); @@ -70,18 +70,18 @@ /* Audio device is initialized only once */ audio_loop_back_init = SET; } - - + + } else { /* if(audio_rec_buffer_state == BUFFER_OFFSET_FULL)*/ CopyBuffer(&PlaybackBuffer[RECORD_BUFFER_SIZE/2], &RecordBuffer[RECORD_BUFFER_SIZE/2], RECORD_BUFFER_SIZE/2); } - + /* Wait for next data */ audio_rec_buffer_state = BUFFER_OFFSET_NONE; } } } - + /*------------------------------------------------------------------------------------- Callbacks implementation: the callbacks API are defined __weak in the stm32f769i_discovery_audio.c file @@ -97,7 +97,7 @@ { audio_rec_buffer_state = BUFFER_OFFSET_FULL; } - + /** * @brief Manages the DMA Half Transfer complete interrupt. * @param None @@ -107,7 +107,7 @@ { audio_rec_buffer_state = BUFFER_OFFSET_HALF; } - + /** * @brief Audio IN Error callback function. * @param None @@ -117,11 +117,13 @@ { printf("BSP_AUDIO_IN_Error_CallBack\n"); } - - + + /** * @brief Copy content of pbuffer2 to pbuffer1 - * @param None + * @param1 BufferOut + * @param2 BufferIn + * @param3 Size * @retval None */ static void CopyBuffer(int16_t *pbuffer1, int16_t *pbuffer2, uint16_t BufferSize)
diff -r f849e36f029e -r db1aee306f50 mbed-os.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed-os.lib Fri Nov 22 16:02:58 2019 +0100 @@ -0,0 +1,1 @@ +https://github.com/ARMmbed/mbed-os/#eb60e67d92fa6d01b8e6a822434010a53d4eb006
diff -r f849e36f029e -r db1aee306f50 mbed.bld --- a/mbed.bld Tue Apr 04 09:42:54 2017 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -http://mbed.org/users/mbed_official/code/mbed/builds/856d2700e60b \ No newline at end of file