来源:公众号【鱼鹰谈单片机】
作者:鱼鹰Osprey
ID :emOsprey











U32 USBD_WriteEP (U32 EPNum, U8 *pData, U32 cnt){/* Double Buffering is not yet supported */U32 num, *pv, n;U16 statusEP;static uint32_t time,send_cnt;static uint32_t max,min = (uint32_t)-1;static uint32_t curr_send_cnt;curr_send_cnt = cnt;if(EPNum == 0x82){if(time == 0){time = DWT->CYCCNT;if(time==0)time=1;}send_cnt += cnt;if(time != 0){if((DWT->CYCCNT - time)/72 > 1000000){time = DWT->CYCCNT;if(send_cnt > max){max = send_cnt;}if(send_cnt < min){min = send_cnt;}send_cnt = 0;}}}num = EPNum & 0x0F;pv = (U32 *)(USB_PMA_ADDR + 2 * ((pBUF_DSCR + num)->ADDR_TX));printf("\nw%04x\n", (EPNum << 8) |cnt);for (n = 0; n < (cnt + 1) / 2; n++){*pv++ = *((__packed U16 *)pData);// if(n < 8){printf("%x ", (uint32_t)*(U8 *)pData);printf("%x ", (uint32_t)*((U8 *)pData+1));}pData += 2;}printf("\n");// printf("--\n");(pBUF_DSCR + num)->COUNT_TX = cnt;statusEP = EPxREG(num);if ((statusEP & EP_STAT_TX) != EP_TX_STALL){ /* do not make EP valid if stalled */EP_Status(EPNum, EP_TX_VALID);}return (cnt);}


-THE END-
如果对你有帮助,记得转发分享哦
微信公众号「鱼鹰谈单片机」
每周一更单片机知识

长按后前往图中包含的公众号关注
鱼鹰,一个被嵌入式耽误的畅销书作家
个人微信「EmbeddedOsprey」

长按后打开对方的名片关注