阅读:1090回复:7
d12如何进行重新连接了
如果我不拔usb的电缆,希望能和host重新进行连接,这个过程是上位机的过程还是下位机的过程还是两者都有了?
下位机能作的无非就是disconnect后在connect吧,上位机需要做什么了? |
|
沙发#
发布于:2004-01-13 14:03
用户被禁言,该主题自动屏蔽! |
|
板凳#
发布于:2004-01-13 14:35
枚举过程是操作系统的事吧,上位机软件有什么事情了?
下位机仅仅重新连接一下就可以了吗?其他过程和第一次插usb电缆的过程是一样的吗? |
|
地板#
发布于:2004-01-13 14:38
用户被禁言,该主题自动屏蔽! |
|
地下室#
发布于:2004-01-13 16:36
这一段程序够吗?这是偶下位机的reconnect程序
void USB_Disconnect(void) { USB_DISABLE_INTERRUPT; // Initialize D12 configuration USB_D12_SetMode(USB_D12_NOLAZYCLOCK | USB_D12_CLOCKRUNNING, USB_D12_SETTOONE | USB_D12_CLOCK_12M ); } void USB_Connect(void) { // reset event flags USB_DISABLE_INTERRUPT; bUSBFlags.nValue = 0; // USB_ENABLE_INTERRUPT; USB_D12_SetEndpointStatus(2, 0); USB_D12_SetEndpointStatus(3, 0); USB_D12_SetEndpointStatus(4, 0); USB_D12_SetEndpointStatus(5, 0); // V2.1 enable normal+sof interrupt USB_D12_SetDMA(USB_D12_ENDP4INTENABLE | USB_D12_ENDP5INTENABLE); // Initialize D12 configuration USB_D12_SetMode(USB_D12_NOLAZYCLOCK | USB_D12_CLOCKRUNNING | USB_D12_SOFTCONNECT, USB_D12_SETTOONE |USB_D12_CLOCK_4M); USB_ENABLE_INTERRUPT; } void USB_Reconnect(void) { bUSBFlags.bits.bIn_ISR = 1; USB_ClearAllInts(); USB_Disconnect(); Delay(256); USB_ENABLE_INTERRUPT; Delay(1200); USB_DISABLE_INTERRUPT; USB_Connect(); bUSBFlags.bits.bIn_ISR = 0; } |
|
5楼#
发布于:2004-01-13 16:46
用户被禁言,该主题自动屏蔽! |
|
6楼#
发布于:2004-01-13 17:12
真是不好意思,偶不是ez的,是d12的,我不拔电缆,当我发现程序异常的时候,我就跳转到程序头重新开始执行,但是执行了reconnect后,没有进行重新枚举的过程,是不是我下位机还需要做什么啊!这个时候不能片子reset信号的。
|
|
7楼#
发布于:2004-01-13 17:18
用户被禁言,该主题自动屏蔽! |
|