我想通過動態(tài)改變R16_UEPx_DMA和R8_UEPx_T_LEN寄存器,免去內(nèi)存上數(shù)據(jù)搬移,直接使用USB多個包發(fā)送一段比較長的內(nèi)存上的數(shù)據(jù),不知道是否可行??墒俏以嚵撕脦状味际×?,發(fā)出去的數(shù)據(jù)始終是某段內(nèi)存,一直不發(fā)生改變。
int?C_USBHD_Dev::Send_Pack(u8?endp,?void?*p,?u16?len) { ??if(endp&0x80?==?0){ ????return?1; ??} ??endp?&=?0x7f; ??if(endp?>=?8){ ????return?1; ??}else{ ????regs->*C_USB_MOD_REG[endp-1]?&=?~(0x0f?<<?C_USB_MOD_SFT[endp-1]); ????regs->UEPx_DMA[endp].L16b?=?((u16)(u32)p)&0xfffc; ????regs->UEPx_TLEN_CTRL[endp].T_LEN?=?len; ????regs->*C_USB_MOD_REG[endp-1]?|=?RB_UEP2_TX_EN?<<?C_USB_MOD_SFT[endp-1]; ????MODIFY_REG(regs->UEPx_TLEN_CTRL[endp].CTRL, ???????????????MASK_UEP_T_RES, ???????????????UEP_T_RES_ACK); ??} }
熱門產(chǎn)品 :
CH32X035: 32位USB+USB PD單片機