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