标题:
STM32——USB详细使用说明(9)
[打印本页]
作者:
yuyang911220
时间:
2015-4-29 10:57
标题:
STM32——USB详细使用说明(9)
uint8_tIn0_Process(void)
{
uint32_t ControlState =pInformation->ControlState;
if ((ControlState == IN_DATA)|| (ControlState == LAST_IN_DATA)) //控制状态
{
DataStageIn();//第一次取设备描述符只取一次 当前的状态变为WAIT_STATUS_IN 表明设备等待状态过程主机输出0字节
ControlState= pInformation->ControlState;
}
else if (ControlState ==WAIT_STATUS_IN)
//设置地址状态阶段进入这个程序
{
if((pInformation->USBbRequest == SET_ADDRESS)&&
(Type_Recipient == (STANDARD_REQUEST | DEVICE_RECIPIENT)))
{
SetDeviceAddress(pInformation->USBwValue0);
//设置使用新的地址
pUser_Standard_Requests->User_SetDeviceAddress();
}
(*pProperty->Process_Status_IN)();
ControlState=STALLED; //终止发送和接受
}
else
{
ControlState= STALLED;
}
pInformation->ControlState =ControlState;
return Post0_Process();
}
uint8_t Post0_Process(void)
{
#ifdef STM32F10X_CL
USB_OTG_EP *ep;
#endif
SetEPRxCount(ENDP0,Device_Property.MaxPacketSize);
//设置端点0 要接受的字节数
if(pInformation->ControlState ==STALLED)
//这种状态下只接受SETUP命令包
{
vSetEPRxStatus(EP_RX_STALL);
//终止端点0接受
vSetEPTxStatus(EP_TX_STALL);
//终止端点0发送
}
return(
pInformation->ControlState ==PAUSE
);
}
***************(6)*************
从新地址获取设备描述符
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0