#include #include #include #include "inc/hw_ints.h" #include "inc/hw_memmap.h" #include "inc/hw_types.h" #include "inc/hw_uart.h" #include "driverlib/debug.h" #include "driverlib/gpio.h" #include "driverlib/interrupt.h" #include "driverlib/sysctl.h" #include "driverlib/systick.h" #include "driverlib/timer.h" #include "driverlib/uart.h" #include "driverlib/usb.h" #include "driverlib/rom.h" #include "driverlib/rom_map.h" #include "usblib/usblib.h" #include "usblib/usbcdc.h" #include "usblib/usb-ids.h" #include "usblib/device/usbdevice.h" #include "usblib/device/usbdcdc.h" //#include #include "utils/ustdlib.h" #include "usb_serial_structs.h" //***************************************************************************** // // The system tick rate expressed both as ticks per second and a millisecond // period. // //***************************************************************************** #define TICKS_PER_SECOND 100 //***************************************************************************** // // Variables tracking transmit and receive counts. // //***************************************************************************** static volatile uint32_t g_RxCount; #ifdef DEBUG uint32_t g_ui32UARTRxErrors; #endif //***************************************************************************** // // Flags used to pass commands from interrupt context to the main loop. // //***************************************************************************** #define FLAG_STATUS_UPDATE 0 #define FLAG_USB_CONFIGURED 1 #define FLAG_SENDING_BREAK 2 static volatile uint32_t g_ui32Flags; static void (*callback)(char* buffer, size_t length); //***************************************************************************** // // Internal function prototypes. // //***************************************************************************** static void CheckForSerialStateChange(const tUSBDCDCDevice *psDevice, uint32_t ui32Errors); static void SetControlLineState(uint16_t ui16State); static void GetLineCoding(tLineCoding *psLineCoding); static void handleRx(void); void StartUSB(uint32_t ui32SysClock); void InitUSB(void); uint32_t SendChars(char* buffer,size_t length); void RegisterReceiveCallback(void (*callback_ptr)(char* buffer, size_t length));