#ifndef CORE_USB_USB_COMMON_DEFS #define CORE_USB_USB_COMMON_DEFS #include // Select appropriate headers #if defined(STM32H745xx) || defined(STM32H743xx) || defined(STM32H723xx) #include #include #define USB_STM32H7 // ------------ #elif defined(STM32F407xx) || defined(STM32F401xC) #include #include #define USB_STM32F4 #endif #define USB_LINESPEED_FULL_SPEED (0b11) #define USB_LINESPEED_FULL_SPEED_ULPI (0b01) #define USB_LINESPEED_HIGH_SPEED_ULPI (0b00) #define USBD ((USB_OTG_DeviceTypeDef *) (((uint32_t)(USBG)) + ((uint32_t)(USB_OTG_DEVICE_BASE)))) #define USBINEP ((USB_OTG_INEndpointTypeDef *) (((uint32_t)(USBG)) + ((uint32_t)(USB_OTG_IN_ENDPOINT_BASE)))) #define USBOUTEP ((USB_OTG_OUTEndpointTypeDef *) (((uint32_t)(USBG)) + ((uint32_t)(USB_OTG_OUT_ENDPOINT_BASE)))) #define USBFIFO(ep) ((uint32_t *)(((uint32_t)(USBG)) + USB_OTG_FIFO_BASE + (USB_OTG_FIFO_SIZE) * (ep))) #define USBPCGCCTL ((uint32_t *)(((uint32_t)(USBG)) + USB_OTG_PCGCCTL_BASE)) // Set TOCAL and TRDT values (see Ref. Man.) #if defined(USB_STM32H7) /*|| defined(USB_HIGH_SPEED)*/ #define TOCAL_VALUE (0x00) #define TRDT_VALUE (0x05) #elif defined(USB_STM32F4) #if !defined(USB_HIGH_SPEED) #define TOCAL_VALUE (0x07) #define TRDT_VALUE (0x06) #else #define TOCAL_VALUE (0x07) #define TRDT_VALUE (0x09) #endif #endif #endif /* CORE_USB_USB_COMMON_DEFS */