十一、接下来将这几个函数修改成工程的样子
void USBH_USR_Init(void)
void USBH_USR_DeviceAttached(void)
void USBH_USR_UnrecoveredError (void)
void USBH_USR_DeviceDisconnected (void)
void USBH_USR_ResetDevice(void)
void USBH_USR_DeviceSpeedDetected(uint8_t DeviceSpeed)
void USBH_USR_Device_DescAvailable(void
*DeviceDesc)
void USBH_USR_DeviceAddressAssigned(void)
void USBH_USR_Configuration_DescAvailable()
void USBH_USR_Manufacturer_String(void
*ManufacturerString)
void USBH_USR_Product_String(void
*ProductString)
void USBH_USR_SerialNum_String(void
*SerialNumString)
void USBH_USR_EnumerationDone(void)
void USBH_USR_DeviceNotSupported(void)
USBH_USR_Status USBH_USR_UserInput(void)
void
USBH_USR_OverCurrentDetected (void)
注释掉函数int USBH_USR_MSC_Application(void)中内容,修改成工程样子,需在usbh_usr.h文件中创建宏定义#define USH_USR_FS_TEST 4
剩下往下的内容全部注释掉
十二、再下来就增加几个函数
void
OTG_FS_IRQHandler(void)【官方在stm32fxxx_it.c文件中压缩包路径为..
\STM32_USB-Host-Device_Lib_V2.1.0\Project\USB_Host_Examples\MSC\src】
以下几个函数可以直接在文件usbh_msc_fatfs.c中抄过来,路径..
\STM32_USB-Host-Device_Lib_V2.1.0\Libraries\STM32_USB_HOST_Library\Class\MSC\src
uint32_t USB_disk_status(void)
int USB_disk_read(uint8_t *buff, uint32_t
sector, uint32_t count)
int
USB_disk_write(uint8_t *buff, uint32_t sector, uint32_t count)
十三、以上家伙都完工之后,开始编写main函数了添加int USER_APP_Test(void)函数,在上面我们要求写这么一个测试函数,内容详细见工程,在此函数里边完成读写操作,官方是在int USBH_USR_MSC_Application(void)函数里边完成
十四、改写文件系统disko.c文件,这里边的代码完全可以借鉴usbh_msc_fatfs.c文件,.. \STM32_USB-Host-Device_Lib_V2.1.0\Libraries\STM32_USB_HOST_Library\Class\MSC\src
十五、写好后,就编写main循环内容了,初始化外设,分配内存等操作,编译改错即可
十六、编译无误后下载到探索者板子,插上U盘,可以看到屏幕上显示获取到的信息
获取到U盘总大小和剩余容量大小并显示
十七、这时,按照屏幕提示,按下KEY0按键执行写入U盘操作,再次按KEY2按键执行读取U盘操作
十八、将U盘插到电脑上查看文件
好像有点不对
与代码对比,写入和读取的数据一样的,说明成功了,哈哈
详细工程请看附件,其中不足之处望指导指导