我這邊需要用到端點4,但是只要 將? UEP4_1_MOD |= bUEP4_TX_EN;? usb設(shè)備就無法識別.
如果屏蔽此行則可以識別到設(shè)備。
請幫忙看看,或者是否可以提供下用到端點4的demo 參考下??
void CTouchDeviceInit()
{
IE_USB = 0;
USB_CTRL = 0x00;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? // 先設(shè)定模式
UDEV_CTRL = bUD_PD_DIS;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?// 禁止DP/DM下拉電阻
? UDEV_CTRL &= ~bUD_LOW_SPEED;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//選擇全速12M模式,默認(rèn)方式
? USB_CTRL &= ~bUC_LOW_SPEED;
? UEP0_DMA = Ep0Buffer;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//端點0數(shù)據(jù)傳輸?shù)刂?/p>
?// UEP4_1_MOD &= ~(bUEP4_RX_EN | bUEP4_TX_EN);? ? ? ? ? ? ? ? ? ? ?//端點0單64字節(jié)收發(fā)緩沖區(qū)
? ??
? UEP1_DMA = Ep1Buffer;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//端點1數(shù)據(jù)傳輸?shù)刂?/p>
? UEP4_1_MOD = UEP4_1_MOD & ~bUEP1_BUF_MOD | bUEP1_TX_EN;? ? ? ? ?//端點1發(fā)送使能 64字節(jié)緩沖區(qū)
UEP2_DMA = Ep2Buffer;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//端點2數(shù)據(jù)傳輸?shù)刂?/p>
? UEP2_3_MOD = UEP2_3_MOD & ~bUEP2_BUF_MOD | bUEP2_TX_EN;? ? ? ? ?//端點2發(fā)送使能 64字節(jié)緩沖區(qū)
UEP3_DMA = Ep3Buffer;? ? ? ?
UEP2_3_MOD |= bUEP3_TX_EN;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //端點3發(fā)送使能
? UEP2_3_MOD |= bUEP3_RX_EN;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //端點3接收使能
UEP2_3_MOD &= ~bUEP3_BUF_MOD;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//端點3收發(fā)各64字節(jié)緩沖區(qū)
//? UEP3_CTRL = bUEP_AUTO_TOG | UEP_T_RES_NAK | UEP_R_RES_ACK;? ? //端點3自動翻轉(zhuǎn)同步標(biāo)志位,IN事務(wù)返回NAK,OUT返回ACK
?
UEP4_1_MOD |= bUEP4_TX_EN;??
USB_DEV_AD = 0x00;
USB_CTRL |= bUC_DEV_PU_EN | bUC_INT_BUSY | bUC_DMA_EN;? ? ? ? ? // 啟動USB設(shè)備及DMA,在中斷期間中斷標(biāo)志未清除前自動返回NAK
UDEV_CTRL |= bUD_PORT_EN;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?// 允許USB端口
USB_INT_FG = 0xFF;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? // 清中斷標(biāo)志
USB_INT_EN = bUIE_SUSPEND | bUIE_TRANSFER | bUIE_BUS_RST;
IE_USB = 1;
}