This example demonstrates the reading of the USB Gamepad in the Nucleo.

Dependencies:   mbed

Intro

This example demonstrates the reading of the USB Gamepad in the Nucleo.

Parts

STM32 Nucleo F446RE
USB Connector
LED 2pcs
Register 470 ohm 2pcs
Breadboard
Wires

Wiring diagram

/media/uploads/beaglescout007/nucleo_ex04_usbpad.png This circuit diagram was created by fritzing.

/media/uploads/beaglescout007/usbcon.jpg

USB con.Nucleo
GNDGND
+PA_12
-PA_11
5V5V

https://youtu.be/EYIukjwJSew

Original Library

Committer:
beaglescout007
Date:
Tue Mar 15 11:39:04 2016 +0000
Revision:
0:b5f79b4f741d
Release

Who changed what in which revision?

UserRevisionLine numberNew contents of line
beaglescout007 0:b5f79b4f741d 1 /* mbed USBHost Library
beaglescout007 0:b5f79b4f741d 2 * Copyright (c) 2006-2013 ARM Limited
beaglescout007 0:b5f79b4f741d 3 *
beaglescout007 0:b5f79b4f741d 4 * Licensed under the Apache License, Version 2.0 (the "License");
beaglescout007 0:b5f79b4f741d 5 * you may not use this file except in compliance with the License.
beaglescout007 0:b5f79b4f741d 6 * You may obtain a copy of the License at
beaglescout007 0:b5f79b4f741d 7 *
beaglescout007 0:b5f79b4f741d 8 * http://www.apache.org/licenses/LICENSE-2.0
beaglescout007 0:b5f79b4f741d 9 *
beaglescout007 0:b5f79b4f741d 10 * Unless required by applicable law or agreed to in writing, software
beaglescout007 0:b5f79b4f741d 11 * distributed under the License is distributed on an "AS IS" BASIS,
beaglescout007 0:b5f79b4f741d 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
beaglescout007 0:b5f79b4f741d 13 * See the License for the specific language governing permissions and
beaglescout007 0:b5f79b4f741d 14 * limitations under the License.
beaglescout007 0:b5f79b4f741d 15 */
beaglescout007 0:b5f79b4f741d 16
beaglescout007 0:b5f79b4f741d 17 #ifndef USB_DEBUG_H
beaglescout007 0:b5f79b4f741d 18 #define USB_DEBUG_H
beaglescout007 0:b5f79b4f741d 19
beaglescout007 0:b5f79b4f741d 20 //Debug is disabled by default
beaglescout007 0:b5f79b4f741d 21 #ifndef DEBUG
beaglescout007 0:b5f79b4f741d 22 //#define DEBUG 3 /*INFO,ERR,WARN*/
beaglescout007 0:b5f79b4f741d 23 #define DEBUG 0
beaglescout007 0:b5f79b4f741d 24 #endif
beaglescout007 0:b5f79b4f741d 25 #ifndef DEBUG2
beaglescout007 0:b5f79b4f741d 26 #define DEBUG2 0
beaglescout007 0:b5f79b4f741d 27 #endif
beaglescout007 0:b5f79b4f741d 28 #define DEBUG_TRANSFER 0
beaglescout007 0:b5f79b4f741d 29 #define DEBUG_EP_STATE 0
beaglescout007 0:b5f79b4f741d 30 #define DEBUG_EVENT 0
beaglescout007 0:b5f79b4f741d 31
beaglescout007 0:b5f79b4f741d 32 #if (DEBUG > 3)
beaglescout007 0:b5f79b4f741d 33 #define USB_DBG(...) do{fprintf(stderr,"[%s@%d] ",__PRETTY_FUNCTION__,__LINE__);fprintf(stderr,__VA_ARGS__);fprintf(stderr,"\r\n");} while(0);
beaglescout007 0:b5f79b4f741d 34 //#define USB_DBG(x, ...) std::printf("[USB_DBG: %s:%d]" x "\r\n", __FILE__, __LINE__, ##__VA_ARGS__);
beaglescout007 0:b5f79b4f741d 35 #define USB_DBG_HEX(A,B) debug_hex(A,B)
beaglescout007 0:b5f79b4f741d 36 extern void debug_hex(uint8_t* buf, int size);
beaglescout007 0:b5f79b4f741d 37 #define USB_DBG_ERRSTAT() report.print_errstat();
beaglescout007 0:b5f79b4f741d 38 #else
beaglescout007 0:b5f79b4f741d 39 #define USB_DBG(x, ...)
beaglescout007 0:b5f79b4f741d 40 #define USB_DBG_HEX(A,B) while(0)
beaglescout007 0:b5f79b4f741d 41 #define USB_DBG_ERRSTAT() while(0)
beaglescout007 0:b5f79b4f741d 42 #endif
beaglescout007 0:b5f79b4f741d 43
beaglescout007 0:b5f79b4f741d 44 #if (DEBUG2 > 3)
beaglescout007 0:b5f79b4f741d 45 #define USB_DBG2(...) do{fprintf(stderr,"[%s@%d] ",__PRETTY_FUNCTION__,__LINE__);fprintf(stderr,__VA_ARGS__);fprintf(stderr,"\r\n");} while(0);
beaglescout007 0:b5f79b4f741d 46 #else
beaglescout007 0:b5f79b4f741d 47 #define USB_DBG2(...) while(0);
beaglescout007 0:b5f79b4f741d 48 #endif
beaglescout007 0:b5f79b4f741d 49
beaglescout007 0:b5f79b4f741d 50 #if (DEBUG > 2)
beaglescout007 0:b5f79b4f741d 51 #define USB_INFO(...) do{fprintf(stderr,__VA_ARGS__);fprintf(stderr,"\r\n");}while(0);
beaglescout007 0:b5f79b4f741d 52 //#define USB_INFO(x, ...) std::printf("[USB_INFO: %s:%d]" x "\r\n", __FILE__, __LINE__, ##__VA_ARGS__);
beaglescout007 0:b5f79b4f741d 53 #else
beaglescout007 0:b5f79b4f741d 54 #define USB_INFO(x, ...)
beaglescout007 0:b5f79b4f741d 55 #endif
beaglescout007 0:b5f79b4f741d 56
beaglescout007 0:b5f79b4f741d 57 #if (DEBUG > 1)
beaglescout007 0:b5f79b4f741d 58 #define USB_WARN(x, ...) std::printf("[USB_WARNING: %s:%d]" x "\r\n", __FILE__, __LINE__, ##__VA_ARGS__);
beaglescout007 0:b5f79b4f741d 59 #else
beaglescout007 0:b5f79b4f741d 60 #define USB_WARN(x, ...)
beaglescout007 0:b5f79b4f741d 61 #endif
beaglescout007 0:b5f79b4f741d 62
beaglescout007 0:b5f79b4f741d 63 #if (DEBUG > 0)
beaglescout007 0:b5f79b4f741d 64 #define USB_ERR(x, ...) std::printf("[USB_ERR: %s:%d]" x "\r\n", __FILE__, __LINE__, ##__VA_ARGS__);
beaglescout007 0:b5f79b4f741d 65 #else
beaglescout007 0:b5f79b4f741d 66 #define USB_ERR(x, ...)
beaglescout007 0:b5f79b4f741d 67 #endif
beaglescout007 0:b5f79b4f741d 68
beaglescout007 0:b5f79b4f741d 69 #if (DEBUG_TRANSFER)
beaglescout007 0:b5f79b4f741d 70 #define USB_DBG_TRANSFER(x, ...) std::printf("[USB_TRANSFER: %s:%d]" x "\r\n", __FILE__, __LINE__, ##__VA_ARGS__);
beaglescout007 0:b5f79b4f741d 71 #else
beaglescout007 0:b5f79b4f741d 72 #define USB_DBG_TRANSFER(x, ...)
beaglescout007 0:b5f79b4f741d 73 #endif
beaglescout007 0:b5f79b4f741d 74
beaglescout007 0:b5f79b4f741d 75 #if (DEBUG_EVENT)
beaglescout007 0:b5f79b4f741d 76 #define USB_DBG_EVENT(x, ...) std::printf("[USB_EVENT: %s:%d]" x "\r\n", __FILE__, __LINE__, ##__VA_ARGS__);
beaglescout007 0:b5f79b4f741d 77 #else
beaglescout007 0:b5f79b4f741d 78 #define USB_DBG_EVENT(x, ...)
beaglescout007 0:b5f79b4f741d 79 #endif
beaglescout007 0:b5f79b4f741d 80
beaglescout007 0:b5f79b4f741d 81 #ifdef _USB_TEST
beaglescout007 0:b5f79b4f741d 82 #define USB_TEST_ASSERT(A) while(!(A)){fprintf(stderr,"\n\n%s@%d %s ASSERT!\n\n",__PRETTY_FUNCTION__,__LINE__,#A);exit(1);};
beaglescout007 0:b5f79b4f741d 83 #define USB_TEST_ASSERT_FALSE(A) USB_TEST_ASSERT(!(A))
beaglescout007 0:b5f79b4f741d 84 #else
beaglescout007 0:b5f79b4f741d 85 #define USB_TEST_ASSERT(A) while(0)
beaglescout007 0:b5f79b4f741d 86 #define USB_TEST_ASSERT_FALSE(A) while(0)
beaglescout007 0:b5f79b4f741d 87 #endif
beaglescout007 0:b5f79b4f741d 88
beaglescout007 0:b5f79b4f741d 89 #endif
beaglescout007 0:b5f79b4f741d 90
beaglescout007 0:b5f79b4f741d 91