兄弟最近在搞USB,但是发现一个问题,就是USB上电检测端口的设置问题。 因为我现在的设计是没有这个检测端口的,那么在程序里怎么处理呢??? 我把相关的端口设置都注释掉了,但是还是不行,USB设备根本不能运行。 请教怎么处理才能行呢???? 以下是相关的检测端口的程序!!!请高手指点!!!
//#define USB_sense PORTAbits.RA1 //USB 上电检测端口 //#define tris_usb_bus_sense TRISAbits.TRISA1 /************************* * USB检测总线状态函数 **************************/ void USBCheckBusStatus() { //if(USB_sense==USB_BUS_ATTACHED) //如果USB设备上电 //{ if(UCONbits.USBEN == 0) //如果USB现在处于禁止状态,使能 { UCON = 0; UIE = 0; // 清除所有USB中断 UCONbits.USBEN = 1; // 使能USB模块 usb_device_state = ATTACHED_STATE; // USB进入上电状态 } //} //else //{ if(UCONbits.USBEN == 1) // 如果USB处于使能状态,禁止 { UCON = 0; // 禁止USB模块 UIE = 0; // 清所有USB中断 usb_device_state = DETACHED_STATE; // USB设备处于断开状态 }
// }//end if(USB_sense==USB_BUS_ATTACHED)
if(usb_device_state == ATTACHED_STATE) //如果USB处于上电状态 { if(!UCONbits.SE0) //未检测到单端0 { UIR = 0; // 清除所有USB中断标志 UIE = 0; // 复位所有USB中断 UIEbits.URSTIE = 1; // 允许复位中断 UIEbits.IDLEIE = 1; // 允许空闲检测中断 usb_device_state = POWERED_STATE;//POWERED_STATE=2,USB总线有效状态 } }//end if(USB_sense == USB_BUS_ATTACHED) }//end USBCheckBusStatus()
|