void SendData(short n1,short n2) { BYTE data[5]; //根据相关信息修改 data[0] = 0x01; data[1] = LBYTE(n1); data[2] = HBYTE(n1); data[3] = LBYTE(n2); data[4] = HBYTE(n2); SendDataBuf(UART4,data,5); }
//------------------------------------------------------------------------------ // Exported functions //------------------------------------------------------------------------------ //------------------------------------------------------------------------------ //! \ingroup usb_std_req_hlr //! \brief Handles standard SETUP requests //! \param pClass Pointer to a class driver instance //------------------------------------------------------------------------------ void STD_RequestHandler(S_std_class *pClass) { S_usb_request *pSetup = USB_GetSetup(pClass->pUsb); TRACE_DEBUG_M("Std "); // Handle incoming request switch (pSetup->bRequest) { //---------------------- case USB_GET_DESCRIPTOR: //---------------------- TRACE_DEBUG_M("gDesc "); // The HBYTE macro returns the upper byte of a word switch (HBYTE(pSetup->wValue)) { //------------------------- case USB_DEVICE_DESCRIPTOR: //------------------------- TRACE_DEBUG_M("Dev "); STD_GetDeviceDescriptor(pClass, pSetup->wLength); break; //-------------------------------- case USB_CONFIGURATION_DESCRIPTOR: //-------------------------------- TRACE_DEBUG_M("Cfg "); STD_GetConfigurationDescriptor(pClass, pSetup->wLength); break; #if defined(HIGHSPEED) //----------------------------------- case USB_DEVICE_QUALIFIER_DESCRIPTOR: //----------------------------------- TRACE_DEBUG_M("Qua "); STD_GetQualifierDescriptor(pClass, pSetup->wLength); break; //-------------------------------------------- case USB_OTHER_SPEED_CONFIGURATION_DESCRIPTOR: //-------------------------------------------- TRACE_DEBUG_M("OSC "); STD_GetOSCDescriptor(pClass, pSetup->wLength); break; #endif //------------------------- case USB_STRING_DESCRIPTOR: //------------------------- TRACE_DEBUG_M("Str%d ", LBYTE(pSetup->wValue)); STD_GetStringDescriptor(pClass, pSetup->wLength, LBYTE(pSetup->wValue)); break; //------ default: //------ TRACE_WARNING( "W: STD_RequestHandler: Unknown GetDescriptor = 0x%02X\n\r", pSetup->bRequest ); USB_Stall(pClass->pUsb, 0); } break; //------------------- case USB_SET_ADDRESS: //------------------- TRACE_DEBUG_M("sAddr "); USB_SendZLP0(pClass->pUsb, (Callback_f) USB_SetAddress, (void *) pClass->pUsb); break; //------------------------- case USB_SET_CONFIGURATION: //------------------------- TRACE_DEBUG_M("sCfg "); STD_SetConfiguration(pClass, (char) pSetup->wValue); break; //------------------------- case USB_GET_CONFIGURATION: //------------------------- TRACE_DEBUG_M("gCfg "); STD_GetConfiguration(pClass); break; //--------------------- case USB_CLEAR_FEATURE: //--------------------- TRACE_DEBUG_M("cFeat "); switch (pSetup->wValue) { //--------------------- case USB_ENDPOINT_HALT: //--------------------- TRACE_DEBUG_M("Hlt "); USB_Halt(pClass->pUsb, LBYTE(pSetup->wIndex), USB_CLEAR_FEATURE); USB_SendZLP0(pClass->pUsb, 0, 0); break; //---------------------------- case USB_DEVICE_REMOTE_WAKEUP: //---------------------------- TRACE_DEBUG_M("RmWak "); pClass->wDeviceStatus &= ~REMOTE_WAKEUP; // Remote wakeup disabled USB_SendZLP0(pClass->pUsb, 0, 0); break; //------ default: //------ TRACE_DEBUG_H("Sta "); USB_Stall(pClass->pUsb, 0); } break; //------------------ case USB_GET_STATUS: //------------------ TRACE_DEBUG_H("gSta "); switch (USB_REQUEST_RECIPIENT(pSetup)) { //------------------------- case USB_RECIPIENT_DEVICE: //------------------------- TRACE_DEBUG_M("Dev "); STD_GetDeviceStatus(pClass); break; //--------------------------- case USB_RECIPIENT_ENDPOINT: //--------------------------- TRACE_DEBUG_M("Ept "); STD_GetEndpointStatus(pClass, LBYTE(pSetup->wIndex)); break; //------ default: //------ TRACE_WARNING( "W: STD_RequestHandler: Unsupported GetStatus = 0x%02X\n\r", pSetup->bmRequestType ); USB_Stall(pClass->pUsb, 0); } break; //------------------- case USB_SET_FEATURE: //------------------- TRACE_DEBUG_H("sFeat "); switch (pSetup->wValue) { //--------------------- case USB_ENDPOINT_HALT: //--------------------- USB_Halt(pClass->pUsb, LBYTE(pSetup->wIndex), USB_SET_FEATURE); USB_SendZLP0(pClass->pUsb, 0, 0); break; //---------------------------- case USB_DEVICE_REMOTE_WAKEUP: //---------------------------- pClass->wDeviceStatus |= REMOTE_WAKEUP; // Remote wakeup enabled USB_SendZLP0(pClass->pUsb, 0, 0); break; //------ default: //------ TRACE_WARNING( "W: STD_RequestHandler: Unsupported SetFeature=0x%04X\n\r", pSetup->wValue ); USB_Stall(pClass->pUsb, 0); } break; //------ default: //------ TRACE_WARNING( "W: STD_RequestHandler: Unsupported request: 0x%02X\n\r", pSetup->bRequest ); USB_Stall(pClass->pUsb, 0); } }