LinY 发表于 2024-1-4 13:32:26

stm32f429 fatfs分了4个区,usb_hs挂载后4个都显示出来了,如何通过代码控制显示其中的几个?

如题
板子是stm32f429。开发环境stm32cubemx+keil,用的HAL库,裸机no os
fatfs分了4个区,读写正常。
usb_hs挂载后4个盘符都显示出来了,复制文件读写也正常。
我想代码控制显示其中的几个?
请问应该怎么配置或者调用哪个函数


/* Initialize a brand-new disk drive mapped to physical drive 0 */
int16_t DiskFatfs(void) {
printf("Disking...");
DWORD plist[] = {25, 25, 25, 25, 0};
FRESULT ret = f_fdisk(0, plist, work);
printf("ret:%u\n", ret);
ret = f_mkfs("0:", FM_FAT32, 0, work, sizeof(work)); /* Create FAT volume on the logical drive 0 */
printf("mkfs0 ret:%u\n", ret);
ret = f_mkfs("1:", FM_FAT32, 0, work, sizeof(work)); /* Create FAT volume on the logical drive 1 */
printf("mkfs1 ret:%u\n", ret);
ret = f_mkfs("2:", FM_FAT32, 0, work, sizeof(work)); /* Create FAT volume on the logical drive 2 */
printf("mkfs2 ret:%u\n", ret);
ret = f_mkfs("3:", FM_FAT32, 0, work, sizeof(work)); /* Create FAT volume on the logical drive 3 */
printf("mkfs3 ret:%u\n", ret);
return ret;
}



PARTITION VolToPart = {
    {0, 1},   /* "0:" ==> 1st partition on physical drive 0 */
    {0, 2},   /* "1:" ==> 2nd partition on physical drive 0 */
    {0, 3},   /* "1:" ==> 2nd partition on physical drive 0 */
    {0, 4},   /* "1:" ==> 2nd partition on physical drive 0 */
};






eric2013 发表于 2024-1-4 14:21:17

有个关键的问题,楼主这个是模拟U盘,还是挂载U盘。

LinY 发表于 2024-1-5 08:36:10

eric2013 发表于 2024-1-4 14:21
有个关键的问题,楼主这个是模拟U盘,还是挂载U盘。

有个eMMC颗粒,型号KLMBG2JETD-B041,32GB

eric2013 发表于 2024-1-5 08:49:54

LinY 发表于 2024-1-5 08:36
有个eMMC颗粒,型号KLMBG2JETD-B041,32GB

那就是模拟U盘了

这个我也没有想到好的方法。
页: [1]
查看完整版本: stm32f429 fatfs分了4个区,usb_hs挂载后4个都显示出来了,如何通过代码控制显示其中的几个?