6464#elif !defined(USB_MANUFACTURER )
6565// Fall through to unknown if no manufacturer name was provided in a macro
6666#define USBD_MANUFACTURER_STRING "Unknown"
67- #endif
67+ #endif /* USBD_VID */
6868#ifdef USBD_USE_HID_COMPOSITE
69- #define USBD_HID_PRODUCT_HS_STRING "HID in HS Mode"
7069#define USBD_HID_PRODUCT_FS_STRING "HID in FS Mode"
71- #define USBD_HID_CONFIGURATION_HS_STRING "HID Config"
72- #define USBD_HID_INTERFACE_HS_STRING "HID Interface"
7370#define USBD_HID_CONFIGURATION_FS_STRING "HID Config"
7471#define USBD_HID_INTERFACE_FS_STRING "HID Interface"
7572
7673/* Private macro -------------------------------------------------------------*/
77- /* Private function prototypes -----------------------------------------------*/
78- static uint8_t * USBD_HID_DeviceDescriptor (USBD_SpeedTypeDef speed ,uint16_t * length );
79- static uint8_t * USBD_HID_LangIDStrDescriptor (USBD_SpeedTypeDef speed ,uint16_t * length );
80- static uint8_t * USBD_HID_ManufacturerStrDescriptor (USBD_SpeedTypeDef speed ,uint16_t * length );
74+ /* Private function prototypes -----------------------------------------------*/ ;
8175static uint8_t * USBD_HID_ProductStrDescriptor (USBD_SpeedTypeDef speed ,uint16_t * length );
82- static uint8_t * USBD_HID_SerialStrDescriptor (USBD_SpeedTypeDef speed ,uint16_t * length );
8376static uint8_t * USBD_HID_ConfigStrDescriptor (USBD_SpeedTypeDef speed ,uint16_t * length );
8477static uint8_t * USBD_HID_InterfaceStrDescriptor (USBD_SpeedTypeDef speed ,uint16_t * length );
8578#ifdef USB_SUPPORT_USER_STRING_DESC
@@ -88,15 +81,15 @@ static uint8_t *USBD_HID_USRStringDesc (USBD_SpeedTypeDef speed, uint8_t idx, ui
8881
8982/* Private variables ---------------------------------------------------------*/
9083USBD_DescriptorsTypeDef HID_Desc = {
91- USBD_HID_DeviceDescriptor ,
92- USBD_HID_LangIDStrDescriptor ,
93- USBD_HID_ManufacturerStrDescriptor ,
84+ USBD_DeviceDescriptor ,
85+ USBD_LangIDStrDescriptor ,
86+ USBD_ManufacturerStrDescriptor ,
9487USBD_HID_ProductStrDescriptor ,
95- USBD_HID_SerialStrDescriptor ,
88+ USBD_SerialStrDescriptor ,
9689USBD_HID_ConfigStrDescriptor ,
9790USBD_HID_InterfaceStrDescriptor ,
9891};
99- #endif // USBD_USE_HID_COMPOSITE
92+ #endif /* USBD_USE_HID_COMPOSITE */
10093
10194/* USB Standard Device Descriptor */
10295#if defined (__ICCARM__ )/*!< IAR Compiler */
@@ -105,8 +98,8 @@ USBD_DescriptorsTypeDef HID_Desc = {
10598__ALIGN_BEGIN static uint8_t USBD_DeviceDesc [USB_LEN_DEV_DESC ]__ALIGN_END = {
106990x12 ,/* bLength */
107100USB_DESC_TYPE_DEVICE ,/* bDescriptorType */
108- 0x00 ,/* bcdUSB */
109- 0x02 ,
101+ 0x01 ,/* bcdUSB */
102+ 0x01 ,
1101030x00 ,/* bDeviceClass */
1111040x00 ,/* bDeviceSubClass */
1121050x00 ,/* bDeviceProtocol */
@@ -115,8 +108,8 @@ __ALIGN_BEGIN static uint8_t USBD_DeviceDesc[USB_LEN_DEV_DESC] __ALIGN_END = {
115108HIBYTE (USBD_VID ),/* idVendor */
116109LOBYTE (USBD_PID ),/* idVendor */
117110HIBYTE (USBD_PID ),/* idVendor */
118- 0x00 ,/* bcdDevice rel.2.00 */
119- 0x02 ,
111+ 0x01 ,/* bcdDevice rel.1.1 */
112+ 0x01 ,
120113USBD_IDX_MFC_STR ,/* Index of manufacturer string */
121114USBD_IDX_PRODUCT_STR ,/* Index of product string */
122115USBD_IDX_SERIAL_STR ,/* Index of serial number string */
@@ -149,14 +142,13 @@ __ALIGN_BEGIN static uint8_t USBD_StrDesc[USBD_MAX_STR_DESC_SIZ] __ALIGN_END;
149142static void IntToUnicode (uint32_t value ,uint8_t * pbuf ,uint8_t len );
150143static void Get_SerialNum (void );
151144
152- #ifdef USBD_USE_HID_COMPOSITE
153145/**
154146 * @brief Returns the device descriptor.
155147 * @param speed: Current device speed
156148 * @param length: Pointer to data length variable
157149 * @retval Pointer to descriptor buffer
158150 */
159- uint8_t * USBD_HID_DeviceDescriptor (USBD_SpeedTypeDef speed ,uint16_t * length )
151+ uint8_t * USBD_DeviceDescriptor (USBD_SpeedTypeDef speed ,uint16_t * length )
160152{
161153UNUSED (speed );
162154* length = sizeof (USBD_DeviceDesc );
@@ -169,39 +161,20 @@ uint8_t *USBD_HID_DeviceDescriptor(USBD_SpeedTypeDef speed, uint16_t *length)
169161 * @param length: Pointer to data length variable
170162 * @retval Pointer to descriptor buffer
171163 */
172- uint8_t * USBD_HID_LangIDStrDescriptor (USBD_SpeedTypeDef speed ,uint16_t * length )
164+ uint8_t * USBD_LangIDStrDescriptor (USBD_SpeedTypeDef speed ,uint16_t * length )
173165{
174166UNUSED (speed );
175167* length = sizeof (USBD_LangIDDesc );
176168return (uint8_t * )USBD_LangIDDesc ;
177169}
178170
179- /**
180- * @brief Returns the product string descriptor.
181- * @param speed: Current device speed
182- * @param length: Pointer to data length variable
183- * @retval Pointer to descriptor buffer
184- */
185- uint8_t * USBD_HID_ProductStrDescriptor (USBD_SpeedTypeDef speed ,uint16_t * length )
186- {
187- if (speed == USBD_SPEED_HIGH )
188- {
189- USBD_GetString ((uint8_t * )USBD_HID_PRODUCT_HS_STRING ,USBD_StrDesc ,length );
190- }
191- else
192- {
193- USBD_GetString ((uint8_t * )USBD_HID_PRODUCT_FS_STRING ,USBD_StrDesc ,length );
194- }
195- return USBD_StrDesc ;
196- }
197-
198171/**
199172 * @brief Returns the manufacturer string descriptor.
200173 * @param speed: Current device speed
201174 * @param length: Pointer to data length variable
202175 * @retval Pointer to descriptor buffer
203176 */
204- uint8_t * USBD_HID_ManufacturerStrDescriptor (USBD_SpeedTypeDef speed ,uint16_t * length )
177+ uint8_t * USBD_ManufacturerStrDescriptor (USBD_SpeedTypeDef speed ,uint16_t * length )
205178{
206179UNUSED (speed );
207180USBD_GetString ((uint8_t * )USBD_MANUFACTURER_STRING ,USBD_StrDesc ,length );
@@ -214,7 +187,7 @@ uint8_t *USBD_HID_ManufacturerStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *l
214187 * @param length: Pointer to data length variable
215188 * @retval Pointer to descriptor buffer
216189 */
217- uint8_t * USBD_HID_SerialStrDescriptor (USBD_SpeedTypeDef speed ,uint16_t * length )
190+ uint8_t * USBD_SerialStrDescriptor (USBD_SpeedTypeDef speed ,uint16_t * length )
218191{
219192UNUSED (speed );
220193* length = USB_SIZ_STRING_SERIAL ;
@@ -225,6 +198,21 @@ uint8_t *USBD_HID_SerialStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length)
225198return (uint8_t * )USBD_StringSerial ;
226199}
227200
201+ #ifdef USBD_USE_HID_COMPOSITE
202+
203+ /**
204+ * @brief Returns the product string descriptor.
205+ * @param speed: Current device speed
206+ * @param length: Pointer to data length variable
207+ * @retval Pointer to descriptor buffer
208+ */
209+ uint8_t * USBD_HID_ProductStrDescriptor (USBD_SpeedTypeDef speed ,uint16_t * length )
210+ {
211+ UNUSED (speed );
212+ USBD_GetString ((uint8_t * )USBD_HID_PRODUCT_FS_STRING ,USBD_StrDesc ,length );
213+ return USBD_StrDesc ;
214+ }
215+
228216/**
229217 * @brief Returns the configuration string descriptor.
230218 * @param speed: Current device speed
@@ -233,14 +221,8 @@ uint8_t *USBD_HID_SerialStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length)
233221 */
234222uint8_t * USBD_HID_ConfigStrDescriptor (USBD_SpeedTypeDef speed ,uint16_t * length )
235223{
236- if (speed == USBD_SPEED_HIGH )
237- {
238- USBD_GetString ((uint8_t * )USBD_HID_CONFIGURATION_HS_STRING ,USBD_StrDesc ,length );
239- }
240- else
241- {
242- USBD_GetString ((uint8_t * )USBD_HID_CONFIGURATION_FS_STRING ,USBD_StrDesc ,length );
243- }
224+ UNUSED (speed );
225+ USBD_GetString ((uint8_t * )USBD_HID_CONFIGURATION_FS_STRING ,USBD_StrDesc ,length );
244226return USBD_StrDesc ;
245227}
246228
@@ -252,17 +234,12 @@ uint8_t *USBD_HID_ConfigStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length)
252234 */
253235uint8_t * USBD_HID_InterfaceStrDescriptor (USBD_SpeedTypeDef speed ,uint16_t * length )
254236{
255- if (speed == USBD_SPEED_HIGH )
256- {
257- USBD_GetString ((uint8_t * )USBD_HID_INTERFACE_HS_STRING ,USBD_StrDesc ,length );
258- }
259- else
260- {
261- USBD_GetString ((uint8_t * )USBD_HID_INTERFACE_FS_STRING ,USBD_StrDesc ,length );
262- }
237+ UNUSED (speed );
238+ USBD_GetString ((uint8_t * )USBD_HID_INTERFACE_FS_STRING ,USBD_StrDesc ,length );
263239return USBD_StrDesc ;
264240}
265241#endif //USBD_USE_HID_COMPOSITE
242+
266243/**
267244 * @brief Create the serial number string descriptor
268245 * @param None