|

楼主 |
发表于 2020-9-18 18:23:25
|
显示全部楼层
折腾一下午,终于是解决了,不是运行的USBD_User_MSC_LUN_n.c里面USBD_MSCn_Initialize类的函数,还是执行的USBD_User_MSC_0.c里面的函数,弱定义了在usbd_config.h里面,把USBD_User_MSC_LUN_n.c实现的多磁盘这些函数改名成下面这些就行了
__WEAK uint8_t USBD_MSC0_GetMaxLUN (void) { return 0U; }
__WEAK bool USBD_MSC0_LUN_GetMediaCapacity (uint8_t lun, uint32_t *block_count, uint32_t *block_size) { (void)lun; return (USBD_MSC0_GetMediaCapacity (block_count, block_size)); }
__WEAK bool USBD_MSC0_LUN_Read (uint8_t lun, uint32_t lba, uint32_t cnt, uint8_t *buf) { (void)lun; return (USBD_MSC0_Read (lba, cnt, buf)); }
__WEAK bool USBD_MSC0_LUN_Write (uint8_t lun, uint32_t lba, uint32_t cnt, const uint8_t *buf) { (void)lun; return (USBD_MSC0_Write (lba, cnt, buf)); }
__WEAK bool USBD_MSC0_LUN_StartStop (uint8_t lun, bool start) { (void)lun; return (USBD_MSC0_StartStop (start)); }
__WEAK uint32_t USBD_MSC0_LUN_CheckMedia (uint8_t lun) |
|