dari pinpin usb langsung

Dependencies:   mbed

Fork of Nucleo_Ex04_USBPAD by woodstock .

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 #pragma once
beaglescout007 0:b5f79b4f741d 2 #include "mbed.h"
beaglescout007 0:b5f79b4f741d 3 #include "USBHostTypes.h"
beaglescout007 0:b5f79b4f741d 4 #include "USBEndpoint.h"
beaglescout007 0:b5f79b4f741d 5
beaglescout007 0:b5f79b4f741d 6 class HC {
beaglescout007 0:b5f79b4f741d 7 static const uint8_t DIR_IN = 1;
beaglescout007 0:b5f79b4f741d 8 static const uint8_t DIR_OUT = 0;
beaglescout007 0:b5f79b4f741d 9
beaglescout007 0:b5f79b4f741d 10 public:
beaglescout007 0:b5f79b4f741d 11 HC();
beaglescout007 0:b5f79b4f741d 12 HC(int ch);
beaglescout007 0:b5f79b4f741d 13 ~HC();
beaglescout007 0:b5f79b4f741d 14 HAL_StatusTypeDef Init(uint8_t epnum, uint8_t dev_address, uint8_t speed, uint8_t ep_type, uint16_t mps);
beaglescout007 0:b5f79b4f741d 15 HAL_StatusTypeDef SubmitRequest(uint8_t* pbuff, uint16_t length, bool setup = false);
beaglescout007 0:b5f79b4f741d 16 HCD_URBStateTypeDef GetURBState();
beaglescout007 0:b5f79b4f741d 17 HCD_HCStateTypeDef GetState();
beaglescout007 0:b5f79b4f741d 18 uint32_t GetXferCount();
beaglescout007 0:b5f79b4f741d 19 void SetToggle(uint8_t toggle);
beaglescout007 0:b5f79b4f741d 20
beaglescout007 0:b5f79b4f741d 21 static uint8_t slot;
beaglescout007 0:b5f79b4f741d 22
beaglescout007 0:b5f79b4f741d 23 private:
beaglescout007 0:b5f79b4f741d 24 int _ch;
beaglescout007 0:b5f79b4f741d 25 uint8_t _ep_addr;
beaglescout007 0:b5f79b4f741d 26 uint8_t _ep_type;
beaglescout007 0:b5f79b4f741d 27 };
beaglescout007 0:b5f79b4f741d 28
beaglescout007 0:b5f79b4f741d 29 class USBHALHost {
beaglescout007 0:b5f79b4f741d 30 public:
beaglescout007 0:b5f79b4f741d 31 uint8_t LastStatus;
beaglescout007 0:b5f79b4f741d 32 uint8_t prev_LastStatus;
beaglescout007 0:b5f79b4f741d 33
beaglescout007 0:b5f79b4f741d 34 protected:
beaglescout007 0:b5f79b4f741d 35 USBHALHost();
beaglescout007 0:b5f79b4f741d 36 void init();
beaglescout007 0:b5f79b4f741d 37 virtual bool addDevice(USBDeviceConnected* parent, int port, bool lowSpeed) = 0;
beaglescout007 0:b5f79b4f741d 38 int token_setup(USBEndpoint* ep, SETUP_PACKET* setup, uint16_t wLength = 0);
beaglescout007 0:b5f79b4f741d 39 int token_iso_in(USBEndpoint* ep, uint8_t* data, int size);
beaglescout007 0:b5f79b4f741d 40 int multi_token_in(USBEndpoint* ep, uint8_t* data = NULL, size_t total = 0, bool block = true);
beaglescout007 0:b5f79b4f741d 41 int multi_token_out(USBEndpoint* ep, const uint8_t* data = NULL, size_t total = 0);
beaglescout007 0:b5f79b4f741d 42 void multi_token_inNB(USBEndpoint* ep, uint8_t* data, int size);
beaglescout007 0:b5f79b4f741d 43 USB_TYPE multi_token_inNB_result(USBEndpoint* ep);
beaglescout007 0:b5f79b4f741d 44 void setToggle(USBEndpoint* ep, uint8_t toggle);
beaglescout007 0:b5f79b4f741d 45
beaglescout007 0:b5f79b4f741d 46 private:
beaglescout007 0:b5f79b4f741d 47 int token_in(USBEndpoint* ep, uint8_t* data = NULL, int size = 0, int retryLimit = 10);
beaglescout007 0:b5f79b4f741d 48 int token_out(USBEndpoint* ep, const uint8_t* data = NULL, int size = 0, int retryLimit = 10);
beaglescout007 0:b5f79b4f741d 49 int token_ctl_in(USBEndpoint* ep, uint8_t* data, int size, int retryLimit);
beaglescout007 0:b5f79b4f741d 50 int token_int_in(USBEndpoint* ep, uint8_t* data, int size);
beaglescout007 0:b5f79b4f741d 51 int token_blk_in(USBEndpoint* ep, uint8_t* data, int size, int retryLimit);
beaglescout007 0:b5f79b4f741d 52 int token_ctl_out(USBEndpoint* ep, const uint8_t* data, int size, int retryLimit);
beaglescout007 0:b5f79b4f741d 53 int token_int_out(USBEndpoint* ep, const uint8_t* data, int size);
beaglescout007 0:b5f79b4f741d 54 int token_blk_out(USBEndpoint* ep, const uint8_t* data, int size, int retryLimit);
beaglescout007 0:b5f79b4f741d 55 bool wait_attach();
beaglescout007 0:b5f79b4f741d 56 static USBHALHost * instHost;
beaglescout007 0:b5f79b4f741d 57 };
beaglescout007 0:b5f79b4f741d 58
beaglescout007 0:b5f79b4f741d 59