我用的是例程是:STM32Cube_FW_F4_V1.1.0 >> STM32F4X9I_EVA >> Application >> FatFs >> FatFS_USBDisk_RTOS 中的例程,不支持U盘热插拔,也就是说,U盘拔出来之后,再插进去,就识别不出来了。。只有按RESET复位之后,才能再次使用。。
后来找了好久的时间:修改了USB中断函数中调用的一个函数:
static void HCD_Port_IRQHandler(HCD_HandleTypeDef *hhcd)
{
...
....
if( hprt0 & USB_OTG_HPRT_PCDET==USB_OTG_HPRT_PCDET)
{
//USB_MASK_INTERRUPT(hhcd->Instance,USB_OTG_GINTSTS_DISCINT); 我把这一句注释掉,U盘可以热插拔了,也就是说拔出来,再插进去,依然可以识别到
HAL_HCD_Connect_Callbcak(hhcd);
}
....
}
只是以上这样子改,已经改到了底层去了。。。想问上面这样子改是否? |