Solved
CubeMX has BEGIN BEGIN blocks instead of BEGIN END for user code
Thus overwriting it every time.
When generating this function:
/**
* @brief USBD_Get_Configuration_Number
* Return configuration number
* class_type : Device class type
* interface_type : Device interface type
* @retval configuration number
*/
uint16_t USBD_Get_Configuration_Number(uint8_t class_type, uint8_t interface_type)
{
uint8_t cfg_num = 1U;
/* USER CODE BEGIN USBD_Get_CONFIGURATION_Number0 */
/* USER CODE BEGIN USBD_Get_CONFIGURATION_Number0 */
/* USER CODE BEGIN USBD_Get_CONFIGURATION_Number1 */
/* USER CODE BEGIN USBD_Get_CONFIGURATION_Number1 */
return cfg_num;
}CubeMX version: 6.14.0
