//USB接收报告 u8 USB_HID_RecReport(u8* buf) { u8 *pu8EPBuffer; u8 temp; u8 len = 0; len = USB_EP_OUT_SizeCheck(EP3); temp = len; if(len) { pu8EPBuffer = BufferPointer[bEP3OUT_ODD]; while(len--) *buf++=*pu8EPBuffer++; } len = temp; return len; }
void usb_service(void) { // If data transfer arrives if(FLAG_CHK(EP_OUT,gu8USB_Flags)) { (void)USB_EP_OUT_SizeCheck(EP_OUT); usbEP_Reset(EP_OUT); usbSIE_CONTROL(EP_OUT); FLAG_CLR(EP_OUT,gu8USB_Flags); // Send it back to the PC EP_IN_Transfer(EP2,CDC_OUTPointer,1); } if (!ti_print) { ti_print = 300; sprintf((char *)gu8USB_Buffer,"\rtsi %%= %03i ", AbsolutePercentegePosition); EP_IN_Transfer(EP2,gu8USB_Buffer,15); } }