STM32F407VG USB_Host 例程,能识别U盘,在往U盘里写1M的数据时,用了两分钟,感觉有点不对,仿真了一下,发现这个do { }while();循环了好几次,发现状态值不对,退出while的状态值为USBH_MSC_PHASE_ERROR,不知道是什么原因导致的。另一种现象是,运行了两次这个程序,第一次写文件没问题,第二次时把第一次的文件覆盖,文件大写正确,当看U盘属性时发现U盘占用空间2M ,U盘里有且只有一个刚才的1M的文件。
if(HCD_IsDeviceConnected(&USB_OTG_Core))
{
do
{
status = USBH_MSC_Read10(&USB_OTG_Core, buff,sector,512);
USBH_MSC_HandleBOTXfer(&USB_OTG_Core ,&USB_Host);
if(!HCD_IsDeviceConnected(&USB_OTG_Core))
{
return RES_ERROR;
}
}
while(status == USBH_MSC_BUSY );
|