圏9研究所 工作室

圏9研究所の開発情報資料など

STM32F411 BlackPill USB Speaker(7)メインシーケンス

1.メインシーケンス

seq

処理内容

次への遷移条件

SEQ_START

AUDIO_CMD_START

処理後

 

 初回audio data開始

 SEQ_PLAY

 

 ・DMAバッファポインタ初期化

 

 

 ・タイマー起動

 

 

 ・DMA起動

 

 

 

 

SEQ_PLAY

AUDIO_CMD_PLAY

haudio->alt_setting == 0U 再生停止

 

 audio data出力

 SEQ_PAUSE

 

 ・入力データ変換

 

 

  リトルエンディアン L R

 

 

  PWM 2000分割 duty50%0

 

 

 

 

SEQ_PAUSE

haudio->alt_setting != 0U 再生再開

処理後

 

 再生再開

 SEQ_START

 

 ・タイマー停止

 

 

 ・タイマー、DMAリセット

 

 

 ・USBD Out Data リスタート

 

 

 

 

 

2.各処理
1)AUDIO_AudioCmd_FS()    <usbd_audio_if.c>
・cmd値とデータバッファ情報を持ち出す

/* USER CODE BEGIN PV */
/* Private variables ---------------------------------------------------------*/
extern uint8_t *g_audio_buf;
extern uint32_t g_size;
extern uint8_t g_cmd;
/* USER CODE END PV */


static int8_t AUDIO_AudioCmd_FS(uint8_t *pbuf, uint32_t size, uint8_t cmd)
{
	/* USER CODE BEGIN 2 */
	switch (cmd)
	{
	case AUDIO_CMD_START:
		g_cmd |= AUDIO_CMD_START;
		break;
	case AUDIO_CMD_PLAY:
		g_cmd |= AUDIO_CMD_PLAY;
		g_audio_buf = pbuf;
		g_size = size;
		break;
	}
	return (USBD_OK);
	/* USER CODE END 2 */
}