枚举失败。
void USBD_Reset (void)
{
………………
……
……
EPxREG(0) = EP_CONTROL | EP_RX_VALID; // 除了设定端点类型外,还要使能接收
DADDR = DADDR_EF | 0; /* Enable USB Default Address */
}
void main()
{
while(1)
{
……
if (usb_rx_ch == -1)
usb_rx_ch = USBD_CDC_ACM_GetChar();
……
}
}
然后看到这个标志一直在,未清除导致。
void USB_LP_CAN1_RX0_IRQHandler(void) {
……
if (istr & ISTR_ESOF)
{
if (USBD_P_Error_Event)
{
USBD_P_Error_Event(3);
}
ISTR = ~ISTR_ESOF;
}
……
}
END
→点关注,不迷路←