USB Audio working with sync attempt

This commit is contained in:
2022-06-07 15:13:07 -03:00
parent a5806fe9e2
commit 7d4604eac1
8 changed files with 214 additions and 37 deletions

View File

@@ -6,7 +6,7 @@
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/> <provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/> <provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
<provider copy-of="extension" id="org.eclipse.cdt.managedbuilder.core.GCCBuildCommandParser"/> <provider copy-of="extension" id="org.eclipse.cdt.managedbuilder.core.GCCBuildCommandParser"/>
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="-321882623712562213" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true"> <provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="223373907094750558" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
<language-scope id="org.eclipse.cdt.core.gcc"/> <language-scope id="org.eclipse.cdt.core.gcc"/>
<language-scope id="org.eclipse.cdt.core.g++"/> <language-scope id="org.eclipse.cdt.core.g++"/>
</provider> </provider>
@@ -18,7 +18,7 @@
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/> <provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/> <provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
<provider copy-of="extension" id="org.eclipse.cdt.managedbuilder.core.GCCBuildCommandParser"/> <provider copy-of="extension" id="org.eclipse.cdt.managedbuilder.core.GCCBuildCommandParser"/>
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="-321882623712562213" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true"> <provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="223373907094750558" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
<language-scope id="org.eclipse.cdt.core.gcc"/> <language-scope id="org.eclipse.cdt.core.gcc"/>
<language-scope id="org.eclipse.cdt.core.g++"/> <language-scope id="org.eclipse.cdt.core.g++"/>
</provider> </provider>

View File

@@ -49,6 +49,8 @@ extern "C" {
/* USER CODE END EM */ /* USER CODE END EM */
void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim);
/* Exported functions prototypes ---------------------------------------------*/ /* Exported functions prototypes ---------------------------------------------*/
void Error_Handler(void); void Error_Handler(void);

View File

@@ -63,7 +63,7 @@
#define HAL_SD_MODULE_ENABLED #define HAL_SD_MODULE_ENABLED
/* #define HAL_MMC_MODULE_ENABLED */ /* #define HAL_MMC_MODULE_ENABLED */
#define HAL_SPI_MODULE_ENABLED #define HAL_SPI_MODULE_ENABLED
/* #define HAL_TIM_MODULE_ENABLED */ #define HAL_TIM_MODULE_ENABLED
/* #define HAL_UART_MODULE_ENABLED */ /* #define HAL_UART_MODULE_ENABLED */
/* #define HAL_USART_MODULE_ENABLED */ /* #define HAL_USART_MODULE_ENABLED */
/* #define HAL_IRDA_MODULE_ENABLED */ /* #define HAL_IRDA_MODULE_ENABLED */

View File

@@ -11,7 +11,7 @@
#include "AUDIO.h" #include "AUDIO.h"
void Start(){ void Start(){
AUDIO_OUT_Init(2, 100, 48000); AUDIO_OUT_Init(2, 90, 48000);
while(1){ while(1){
} }

View File

@@ -52,6 +52,8 @@ SD_HandleTypeDef hsd;
SPI_HandleTypeDef hspi1; SPI_HandleTypeDef hspi1;
TIM_HandleTypeDef htim1;
/* USER CODE BEGIN PV */ /* USER CODE BEGIN PV */
/* USER CODE END PV */ /* USER CODE END PV */
@@ -66,6 +68,7 @@ static void MX_I2S3_Init(void);
static void MX_SPI1_Init(void); static void MX_SPI1_Init(void);
static void MX_SDIO_SD_Init(void); static void MX_SDIO_SD_Init(void);
static void MX_DMA_Init(void); static void MX_DMA_Init(void);
static void MX_TIM1_Init(void);
/* USER CODE BEGIN PFP */ /* USER CODE BEGIN PFP */
/* USER CODE END PFP */ /* USER CODE END PFP */
@@ -101,7 +104,6 @@ int main(void)
PeriphCommonClock_Config(); PeriphCommonClock_Config();
/* USER CODE BEGIN SysInit */ /* USER CODE BEGIN SysInit */
/* USER CODE END SysInit */ /* USER CODE END SysInit */
/* Initialize all configured peripherals */ /* Initialize all configured peripherals */
@@ -114,6 +116,7 @@ int main(void)
MX_DMA_Init(); MX_DMA_Init();
MX_USB_DEVICE_Init(); MX_USB_DEVICE_Init();
MX_FATFS_Init(); MX_FATFS_Init();
MX_TIM1_Init();
/* USER CODE BEGIN 2 */ /* USER CODE BEGIN 2 */
Start(); Start();
/* USER CODE END 2 */ /* USER CODE END 2 */
@@ -362,6 +365,75 @@ static void MX_SPI1_Init(void)
} }
/**
* @brief TIM1 Initialization Function
* @param None
* @retval None
*/
static void MX_TIM1_Init(void)
{
/* USER CODE BEGIN TIM1_Init 0 */
/* USER CODE END TIM1_Init 0 */
TIM_MasterConfigTypeDef sMasterConfig = {0};
TIM_OC_InitTypeDef sConfigOC = {0};
TIM_BreakDeadTimeConfigTypeDef sBreakDeadTimeConfig = {0};
/* USER CODE BEGIN TIM1_Init 1 */
/* USER CODE END TIM1_Init 1 */
htim1.Instance = TIM1;
htim1.Init.Prescaler = 0;
htim1.Init.CounterMode = TIM_COUNTERMODE_UP;
htim1.Init.Period = 65535;
htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
htim1.Init.RepetitionCounter = 0;
htim1.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
if (HAL_TIM_PWM_Init(&htim1) != HAL_OK)
{
Error_Handler();
}
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
if (HAL_TIMEx_MasterConfigSynchronization(&htim1, &sMasterConfig) != HAL_OK)
{
Error_Handler();
}
sConfigOC.OCMode = TIM_OCMODE_PWM1;
sConfigOC.Pulse = 0;
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
sConfigOC.OCNPolarity = TIM_OCNPOLARITY_HIGH;
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
sConfigOC.OCIdleState = TIM_OCIDLESTATE_RESET;
sConfigOC.OCNIdleState = TIM_OCNIDLESTATE_RESET;
if (HAL_TIM_PWM_ConfigChannel(&htim1, &sConfigOC, TIM_CHANNEL_1) != HAL_OK)
{
Error_Handler();
}
if (HAL_TIM_PWM_ConfigChannel(&htim1, &sConfigOC, TIM_CHANNEL_2) != HAL_OK)
{
Error_Handler();
}
sBreakDeadTimeConfig.OffStateRunMode = TIM_OSSR_DISABLE;
sBreakDeadTimeConfig.OffStateIDLEMode = TIM_OSSI_DISABLE;
sBreakDeadTimeConfig.LockLevel = TIM_LOCKLEVEL_OFF;
sBreakDeadTimeConfig.DeadTime = 0;
sBreakDeadTimeConfig.BreakState = TIM_BREAK_DISABLE;
sBreakDeadTimeConfig.BreakPolarity = TIM_BREAKPOLARITY_HIGH;
sBreakDeadTimeConfig.AutomaticOutput = TIM_AUTOMATICOUTPUT_DISABLE;
if (HAL_TIMEx_ConfigBreakDeadTime(&htim1, &sBreakDeadTimeConfig) != HAL_OK)
{
Error_Handler();
}
/* USER CODE BEGIN TIM1_Init 2 */
/* USER CODE END TIM1_Init 2 */
HAL_TIM_MspPostInit(&htim1);
}
/** /**
* Enable DMA controller clock * Enable DMA controller clock
*/ */

View File

@@ -58,7 +58,9 @@ extern DMA_HandleTypeDef hdma_spi3_tx;
/* USER CODE BEGIN 0 */ /* USER CODE BEGIN 0 */
/* USER CODE END 0 */ /* USER CODE END 0 */
/**
void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim);
/**
* Initializes the Global MSP. * Initializes the Global MSP.
*/ */
void HAL_MspInit(void) void HAL_MspInit(void)
@@ -466,6 +468,79 @@ void HAL_SPI_MspDeInit(SPI_HandleTypeDef* hspi)
} }
/**
* @brief TIM_PWM MSP Initialization
* This function configures the hardware resources used in this example
* @param htim_pwm: TIM_PWM handle pointer
* @retval None
*/
void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef* htim_pwm)
{
if(htim_pwm->Instance==TIM1)
{
/* USER CODE BEGIN TIM1_MspInit 0 */
/* USER CODE END TIM1_MspInit 0 */
/* Peripheral clock enable */
__HAL_RCC_TIM1_CLK_ENABLE();
/* USER CODE BEGIN TIM1_MspInit 1 */
/* USER CODE END TIM1_MspInit 1 */
}
}
void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim)
{
GPIO_InitTypeDef GPIO_InitStruct = {0};
if(htim->Instance==TIM1)
{
/* USER CODE BEGIN TIM1_MspPostInit 0 */
/* USER CODE END TIM1_MspPostInit 0 */
__HAL_RCC_GPIOE_CLK_ENABLE();
/**TIM1 GPIO Configuration
PE8 ------> TIM1_CH1N
PE9 ------> TIM1_CH1
PE10 ------> TIM1_CH2N
PE11 ------> TIM1_CH2
*/
GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
GPIO_InitStruct.Alternate = GPIO_AF1_TIM1;
HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
/* USER CODE BEGIN TIM1_MspPostInit 1 */
/* USER CODE END TIM1_MspPostInit 1 */
}
}
/**
* @brief TIM_PWM MSP De-Initialization
* This function freeze the hardware resources used in this example
* @param htim_pwm: TIM_PWM handle pointer
* @retval None
*/
void HAL_TIM_PWM_MspDeInit(TIM_HandleTypeDef* htim_pwm)
{
if(htim_pwm->Instance==TIM1)
{
/* USER CODE BEGIN TIM1_MspDeInit 0 */
/* USER CODE END TIM1_MspDeInit 0 */
/* Peripheral clock disable */
__HAL_RCC_TIM1_CLK_DISABLE();
/* USER CODE BEGIN TIM1_MspDeInit 1 */
/* USER CODE END TIM1_MspDeInit 1 */
}
}
/* USER CODE BEGIN 1 */ /* USER CODE BEGIN 1 */
/* USER CODE END 1 */ /* USER CODE END 1 */

View File

@@ -48,8 +48,9 @@ Mcu.CPN=STM32F411VET6
Mcu.Family=STM32F4 Mcu.Family=STM32F4
Mcu.IP0=DMA Mcu.IP0=DMA
Mcu.IP1=FATFS Mcu.IP1=FATFS
Mcu.IP10=USB_DEVICE Mcu.IP10=TIM1
Mcu.IP11=USB_OTG_FS Mcu.IP11=USB_DEVICE
Mcu.IP12=USB_OTG_FS
Mcu.IP2=I2C1 Mcu.IP2=I2C1
Mcu.IP3=I2S2 Mcu.IP3=I2S2
Mcu.IP4=I2S3 Mcu.IP4=I2S3
@@ -58,7 +59,7 @@ Mcu.IP6=RCC
Mcu.IP7=SDIO Mcu.IP7=SDIO
Mcu.IP8=SPI1 Mcu.IP8=SPI1
Mcu.IP9=SYS Mcu.IP9=SYS
Mcu.IPNb=12 Mcu.IPNb=13
Mcu.Name=STM32F411V(C-E)Tx Mcu.Name=STM32F411V(C-E)Tx
Mcu.Package=LQFP100 Mcu.Package=LQFP100
Mcu.Pin0=PE2 Mcu.Pin0=PE2
@@ -69,41 +70,45 @@ Mcu.Pin12=PA4
Mcu.Pin13=PA5 Mcu.Pin13=PA5
Mcu.Pin14=PA6 Mcu.Pin14=PA6
Mcu.Pin15=PA7 Mcu.Pin15=PA7
Mcu.Pin16=PB10 Mcu.Pin16=PE8
Mcu.Pin17=PB12 Mcu.Pin17=PE9
Mcu.Pin18=PB15 Mcu.Pin18=PE10
Mcu.Pin19=PD12 Mcu.Pin19=PE11
Mcu.Pin2=PE4 Mcu.Pin2=PE4
Mcu.Pin20=PD13 Mcu.Pin20=PB10
Mcu.Pin21=PD14 Mcu.Pin21=PB12
Mcu.Pin22=PD15 Mcu.Pin22=PB15
Mcu.Pin23=PC7 Mcu.Pin23=PD12
Mcu.Pin24=PC8 Mcu.Pin24=PD13
Mcu.Pin25=PA9 Mcu.Pin25=PD14
Mcu.Pin26=PA10 Mcu.Pin26=PD15
Mcu.Pin27=PA11 Mcu.Pin27=PC7
Mcu.Pin28=PA12 Mcu.Pin28=PC8
Mcu.Pin29=PA13 Mcu.Pin29=PA9
Mcu.Pin3=PE5 Mcu.Pin3=PE5
Mcu.Pin30=PA14 Mcu.Pin30=PA10
Mcu.Pin31=PC10 Mcu.Pin31=PA11
Mcu.Pin32=PC12 Mcu.Pin32=PA12
Mcu.Pin33=PD2 Mcu.Pin33=PA13
Mcu.Pin34=PD4 Mcu.Pin34=PA14
Mcu.Pin35=PB3 Mcu.Pin35=PC10
Mcu.Pin36=PB6 Mcu.Pin36=PC12
Mcu.Pin37=PB9 Mcu.Pin37=PD2
Mcu.Pin38=PE1 Mcu.Pin38=PD4
Mcu.Pin39=VP_FATFS_VS_SDIO Mcu.Pin39=PB3
Mcu.Pin4=PC14-OSC32_IN Mcu.Pin4=PC14-OSC32_IN
Mcu.Pin40=VP_SYS_VS_Systick Mcu.Pin40=PB6
Mcu.Pin41=VP_USB_DEVICE_VS_USB_DEVICE_AUDIO_FS Mcu.Pin41=PB9
Mcu.Pin42=PE1
Mcu.Pin43=VP_FATFS_VS_SDIO
Mcu.Pin44=VP_SYS_VS_Systick
Mcu.Pin45=VP_USB_DEVICE_VS_USB_DEVICE_AUDIO_FS
Mcu.Pin5=PC15-OSC32_OUT Mcu.Pin5=PC15-OSC32_OUT
Mcu.Pin6=PH0 - OSC_IN Mcu.Pin6=PH0 - OSC_IN
Mcu.Pin7=PH1 - OSC_OUT Mcu.Pin7=PH1 - OSC_OUT
Mcu.Pin8=PC1 Mcu.Pin8=PC1
Mcu.Pin9=PC2 Mcu.Pin9=PC2
Mcu.PinsNb=42 Mcu.PinsNb=46
Mcu.ThirdPartyNb=0 Mcu.ThirdPartyNb=0
Mcu.UserConstants= Mcu.UserConstants=
Mcu.UserName=STM32F411VETx Mcu.UserName=STM32F411VETx
@@ -289,6 +294,10 @@ PE1.GPIO_Label=MEMS_INT2 [L3GD20_INT2]
PE1.GPIO_ModeDefaultEXTI=GPIO_MODE_EVT_RISING PE1.GPIO_ModeDefaultEXTI=GPIO_MODE_EVT_RISING
PE1.Locked=true PE1.Locked=true
PE1.Signal=GPXTI1 PE1.Signal=GPXTI1
PE10.Locked=true
PE10.Mode=PWM Generation2 CH2 CH2N
PE10.Signal=TIM1_CH2N
PE11.Signal=S_TIM1_CH2
PE2.GPIOParameters=GPIO_Label PE2.GPIOParameters=GPIO_Label
PE2.GPIO_Label=DATA_Ready [LSM303DLHC_DRDY] PE2.GPIO_Label=DATA_Ready [LSM303DLHC_DRDY]
PE2.Locked=true PE2.Locked=true
@@ -307,6 +316,9 @@ PE5.GPIO_Label=INT2 [LSM303DLHC_INT2]
PE5.GPIO_ModeDefaultEXTI=GPIO_MODE_EVT_RISING PE5.GPIO_ModeDefaultEXTI=GPIO_MODE_EVT_RISING
PE5.Locked=true PE5.Locked=true
PE5.Signal=GPXTI5 PE5.Signal=GPXTI5
PE8.Mode=PWM Generation1 CH1 CH1N
PE8.Signal=TIM1_CH1N
PE9.Signal=S_TIM1_CH1
PH0\ -\ OSC_IN.GPIOParameters=GPIO_Label PH0\ -\ OSC_IN.GPIOParameters=GPIO_Label
PH0\ -\ OSC_IN.GPIO_Label=PH0-OSC_IN PH0\ -\ OSC_IN.GPIO_Label=PH0-OSC_IN
PH0\ -\ OSC_IN.Locked=true PH0\ -\ OSC_IN.Locked=true
@@ -361,7 +373,8 @@ RCC.HCLKFreq_Value=96000000
RCC.HSE_VALUE=8000000 RCC.HSE_VALUE=8000000
RCC.HSI_VALUE=16000000 RCC.HSI_VALUE=16000000
RCC.I2SClocksFreq_Value=160000000 RCC.I2SClocksFreq_Value=160000000
RCC.IPParameters=48MHZClocksFreq_Value,AHBFreq_Value,APB1CLKDivider,APB1Freq_Value,APB1TimFreq_Value,APB2Freq_Value,APB2TimFreq_Value,CortexFreq_Value,EthernetFreq_Value,FCLKCortexFreq_Value,FamilyName,HCLKFreq_Value,HSE_VALUE,HSI_VALUE,I2SClocksFreq_Value,LSI_VALUE,MCO2PinFreq_Value,PLLCLKFreq_Value,PLLI2SM,PLLI2SN,PLLM,PLLP,PLLQ,PLLQCLKFreq_Value,RTCFreq_Value,RTCHSEDivFreq_Value,SYSCLKFreq_VALUE,SYSCLKSource,VCOI2SOutputFreq_Value,VCOInputFreq_Value,VCOInputMFreq_Value,VCOOutputFreq_Value,VcooutputI2S RCC.IPParameters=48MHZClocksFreq_Value,AHBFreq_Value,APB1CLKDivider,APB1Freq_Value,APB1TimFreq_Value,APB2Freq_Value,APB2TimFreq_Value,CortexFreq_Value,EthernetFreq_Value,FCLKCortexFreq_Value,FamilyName,HCLKFreq_Value,HSE_VALUE,HSI_VALUE,I2SClocksFreq_Value,LSE_VALUE,LSI_VALUE,MCO2PinFreq_Value,PLLCLKFreq_Value,PLLI2SM,PLLI2SN,PLLM,PLLP,PLLQ,PLLQCLKFreq_Value,RTCFreq_Value,RTCHSEDivFreq_Value,SYSCLKFreq_VALUE,SYSCLKSource,VCOI2SOutputFreq_Value,VCOInputFreq_Value,VCOInputMFreq_Value,VCOOutputFreq_Value,VcooutputI2S
RCC.LSE_VALUE=32768
RCC.LSI_VALUE=32000 RCC.LSI_VALUE=32000
RCC.MCO2PinFreq_Value=96000000 RCC.MCO2PinFreq_Value=96000000
RCC.PLLCLKFreq_Value=96000000 RCC.PLLCLKFreq_Value=96000000
@@ -388,12 +401,22 @@ SH.GPXTI4.0=GPIO_EXTI4
SH.GPXTI4.ConfNb=1 SH.GPXTI4.ConfNb=1
SH.GPXTI5.0=GPIO_EXTI5 SH.GPXTI5.0=GPIO_EXTI5
SH.GPXTI5.ConfNb=1 SH.GPXTI5.ConfNb=1
SH.S_TIM1_CH1.0=TIM1_CH1,PWM Generation1 CH1 CH1N
SH.S_TIM1_CH1.ConfNb=1
SH.S_TIM1_CH2.0=TIM1_CH2,PWM Generation2 CH2 CH2N
SH.S_TIM1_CH2.ConfNb=1
SPI1.BaudRatePrescaler=SPI_BAUDRATEPRESCALER_2 SPI1.BaudRatePrescaler=SPI_BAUDRATEPRESCALER_2
SPI1.CalculateBaudRate=48.0 MBits/s SPI1.CalculateBaudRate=48.0 MBits/s
SPI1.Direction=SPI_DIRECTION_2LINES SPI1.Direction=SPI_DIRECTION_2LINES
SPI1.IPParameters=CalculateBaudRate,BaudRatePrescaler,Mode,VirtualType,Direction SPI1.IPParameters=CalculateBaudRate,BaudRatePrescaler,Mode,VirtualType,Direction
SPI1.Mode=SPI_MODE_MASTER SPI1.Mode=SPI_MODE_MASTER
SPI1.VirtualType=VM_MASTER SPI1.VirtualType=VM_MASTER
TIM1.Channel-PWM\ Generation1\ CH1\ CH1N=TIM_CHANNEL_1
TIM1.Channel-PWM\ Generation2\ CH2\ CH2N=TIM_CHANNEL_2
TIM1.IPParameters=Channel-PWM Generation1 CH1 CH1N,OCMode_PWM-PWM Generation1 CH1 CH1N,OffStateRunMode,OffStateIDLEMode,Channel-PWM Generation2 CH2 CH2N
TIM1.OCMode_PWM-PWM\ Generation1\ CH1\ CH1N=TIM_OCMODE_PWM1
TIM1.OffStateIDLEMode=TIM_OSSI_DISABLE
TIM1.OffStateRunMode=TIM_OSSR_DISABLE
USB_DEVICE.CLASS_NAME_FS=AUDIO USB_DEVICE.CLASS_NAME_FS=AUDIO
USB_DEVICE.IPParameters=VirtualMode,VirtualModeFS,CLASS_NAME_FS,USBD_AUDIO_FREQ USB_DEVICE.IPParameters=VirtualMode,VirtualModeFS,CLASS_NAME_FS,USBD_AUDIO_FREQ
USB_DEVICE.USBD_AUDIO_FREQ=48000 USB_DEVICE.USBD_AUDIO_FREQ=48000

View File

@@ -189,7 +189,11 @@ static int8_t AUDIO_AudioCmd_FS(uint8_t* pbuf, uint32_t size, uint8_t cmd)
break; break;
case AUDIO_CMD_PLAY: case AUDIO_CMD_PLAY:
AUDIO_OUT_Play(pbuf, 2*size);
break;
case AUDIO_CMD_STOP:
//AUDIO_OUT_Pause();
break; break;
} }
UNUSED(pbuf); UNUSED(pbuf);
@@ -207,6 +211,7 @@ static int8_t AUDIO_AudioCmd_FS(uint8_t* pbuf, uint32_t size, uint8_t cmd)
static int8_t AUDIO_VolumeCtl_FS(uint8_t vol) static int8_t AUDIO_VolumeCtl_FS(uint8_t vol)
{ {
/* USER CODE BEGIN 3 */ /* USER CODE BEGIN 3 */
AUDIO_OUT_SetVolume(vol);
UNUSED(vol); UNUSED(vol);
return (USBD_OK); return (USBD_OK);
/* USER CODE END 3 */ /* USER CODE END 3 */