CH554 端点4 使能后设备无法识别

我这边需要用到端点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;

}


您好,

可以参考这个例程,使用端点4传输。

icon_rar.gifEXAM-端点4.zip



只有登录才能回复,可以选择微信账号登录