Estoy aprendiendo sobre las clases de USB usando STM32F429ZI (en el tablero Discovery). Ya intenté implementar la clase de dispositivo de comunicaciones (CDC) y funcionó bien, ahora intenté hacer una prueba simple con la clase de dispositivo de audio.
Estoy usando CubeMX para generar un proyecto, elegí la clase de dispositivo de audio allí, creó archivos de biblioteca predeterminados. uVision cumplido sin errores ni advertencias. Presenté mi MCU y en el administrador de dispositivos se ve así:
DespuésdeaprendersobreCDCUSB,supequenecesitabaaumentarStack_SizeyHeap_Sizeenelarchivodeinicio.Lointenté,nadacambia.TambiénencontréalgunosconsejosparadisminuirHS_MAX_PACKET_SIZE,aúnsinefecto.
Bueno,laspreguntasson:
- ¿PorquéestábajoelpuertoCOM?Inclusosialgunasconfiguracionesnosoncorrectas,¿nodeberíaestarendispositivosdesonido?
- ¿Quéestámal?¿Cómohacerquefuncione?Seríabuenohacerquesereconozcacomodispositivodeaudio,nadaespecial.
Elerroreneldispositivoessimplementegenérico"Este dispositivo no puede iniciarse".
EDIT1
Enrealidad,noséquétipodecódigoadjuntar,yaquetodosegeneraconCubeMX.Puedodarcualquierfragmentoapetición,siesnecesario.
DescripcióndeldispositivoUSBgeneradoporCubeMX.
#defineUSBD_VID1155#defineUSBD_LANGID_STRING1033#defineUSBD_MANUFACTURER_STRING"STMicroelectronics"
#define USBD_PID_HS 22336
#define USBD_PRODUCT_STRING_HS "STM32 Audio Class"
/* USER CODE BEGIN SERIALNUMBER_STRING_HS */
#define USBD_SERIALNUMBER_STRING_HS "00000000001A"
/* USER CODE END SERIALNUMBER_STRING_HS */
#define USBD_CONFIGURATION_STRING_HS "AUDIO Config"
#define USBD_INTERFACE_STRING_HS "AUDIO Interface"
#define USB_SIZ_BOS_DESC 0x0C
EDIT 2
Encontré que USBD_AUDIO_Init () no se llama a ninguna parte por defecto y este puede ser el problema. Pero tengo problemas para entender cómo puedo llamarlo cuando está "uint8_t estático", por lo que básicamente no se puede llamar desde main. Aquí está la descripción:
usbd_audio.c
/**
* @brief USBD_AUDIO_Init
* Initialize the AUDIO interface
* @param pdev: device instance
* @param cfgidx: Configuration index
* @retval status
*/
static uint8_t USBD_AUDIO_Init (USBD_HandleTypeDef *pdev,
uint8_t cfgidx)
{
bunch of code
}