我这边需要用到端点4,但是只要 将 UEP4_1_MOD |= bUEP4_TX_EN; usb设备就无法识别.
如果屏蔽此行则可以识别到设备。
请帮忙看看,或者是否可以提供下用到端点4的demo 参考下
void CTouchDeviceInit()
{
IE_USB = 0;
USB_CTRL = 0x00; // 先设定模式
UDEV_CTRL = bUD_PD_DIS; // 禁止DP/DM下拉电阻
UDEV_CTRL &= ~bUD_LOW_SPEED; //选择全速12M模式,默认方式
USB_CTRL &= ~bUC_LOW_SPEED;
UEP0_DMA = Ep0Buffer; //端点0数据传输地址
// UEP4_1_MOD &= ~(bUEP4_RX_EN | bUEP4_TX_EN); //端点0单64字节收发缓冲区
UEP1_DMA = Ep1Buffer; //端点1数据传输地址
UEP4_1_MOD = UEP4_1_MOD & ~bUEP1_BUF_MOD | bUEP1_TX_EN; //端点1发送使能 64字节缓冲区
UEP2_DMA = Ep2Buffer; //端点2数据传输地址
UEP2_3_MOD = UEP2_3_MOD & ~bUEP2_BUF_MOD | bUEP2_TX_EN; //端点2发送使能 64字节缓冲区
UEP3_DMA = Ep3Buffer;
UEP2_3_MOD |= bUEP3_TX_EN; //端点3发送使能
UEP2_3_MOD |= bUEP3_RX_EN; //端点3接收使能
UEP2_3_MOD &= ~bUEP3_BUF_MOD; //端点3收发各64字节缓冲区
// UEP3_CTRL = bUEP_AUTO_TOG | UEP_T_RES_NAK | UEP_R_RES_ACK; //端点3自动翻转同步标志位,IN事务返回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设备及DMA,在中断期间中断标志未清除前自动返回NAK
UDEV_CTRL |= bUD_PORT_EN; // 允许USB端口
USB_INT_FG = 0xFF; // 清中断标志
USB_INT_EN = bUIE_SUSPEND | bUIE_TRANSFER | bUIE_BUS_RST;
IE_USB = 1;
}