硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2683|回复: 8
收起左侧

内部flash小u盘不能格式化

[复制链接]

20

主题

92

回帖

152

积分

初级会员

积分
152
发表于 2018-7-14 13:18:44 | 显示全部楼层 |阅读模式
用STM32CubeMX配置USB Device的MSC来做U盘,使用STM32内部FLASH作为U盘存储空间;
完善了STORAGE_Read_FS和STORAGE_Write_FS两个函数,但是没有移植文件系统;
现在电脑上可以看到U盘图标,但是无法格式化,请问电脑进行格式化的操作需要在STM32固件中另外添加什么函数吗?还是需要移植文件系统后才能格式化呢?


回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2018-7-14 14:13:57 | 显示全部楼层
无法格式化一般是因为你的USB接口函数,即操作Flash读写的函数有问题。
回复

使用道具 举报

20

主题

92

回帖

152

积分

初级会员

积分
152
 楼主| 发表于 2018-7-14 15:57:18 | 显示全部楼层
eric2013 发表于 2018-7-14 14:13
无法格式化一般是因为你的USB接口函数,即操作Flash读写的函数有问题。

嗯嗯,刚才单独测试了一下“擦除”“读取”“写入”三个函数的功能,没发现异常。
在移植FatFs的时候,好像记得要求扇区数要大于128个,不知道Windows的格式化操作有没有这个要求呢?
我的PC系统是Win7 32bit,用默认的FAT进行的格式化,因为没有fat12和fat16可以选择;
单片机型号是STM32F103RBT6,内部128KB flash,20KB ram,前64KB做程序存储区,后64KB做U盘虚拟存储区,页大小是0x400,也就是只有64个扇区。
回复

使用道具 举报

20

主题

92

回帖

152

积分

初级会员

积分
152
 楼主| 发表于 2018-7-14 15:59:27 | 显示全部楼层
eric2013 发表于 2018-7-14 14:13
无法格式化一般是因为你的USB接口函数,即操作Flash读写的函数有问题。

不知道怎么上传附件,方便的话,留个邮箱我发给你看看吧
回复

使用道具 举报

20

主题

92

回帖

152

积分

初级会员

积分
152
 楼主| 发表于 2018-7-14 16:43:46 | 显示全部楼层
以下是STM32CubeMX工程中的配置:
USBD_MAX_NUM_INTERFACES (Maximum number of supported interfaces) ===> 1
USBD_MAX_NUM_CONFIGURATION (Maximum number of supported configuration) ===> 1
USBD_MAX_STR_DESC_SIZ (Maximum size for the string descriptors) ===> 512 bytes
USBD_SUPPORT_USER_STRING (Enable user string descriptor) ===> Disabled
USBD_SELF_POWERED (Enabled self power) ===> Enalbed
USBD_DEBUG_LEVEL (USBD Debug Level) ===> 0: No debug message
MSC_MEDIA_PACKET (Media I/O buffer Size) ===> 512 bytes
回复

使用道具 举报

20

主题

92

回帖

152

积分

初级会员

积分
152
 楼主| 发表于 2018-7-14 20:46:47 | 显示全部楼层
又用STM32F429测试了一下,分配64KB的RAM,也是一样的“Windows无法完成格式化”;
F429是操作的RAM,按说读写应该不会出什么问题,可是异常状况还是一样的。
回复

使用道具 举报

36

主题

1445

回帖

1553

积分

至尊会员

积分
1553
发表于 2018-7-14 22:12:40 | 显示全部楼层
直接上RL_USB吧,爽飞。主机和从机都比ST_USB好用,还稳定
回复

使用道具 举报

20

主题

92

回帖

152

积分

初级会员

积分
152
 楼主| 发表于 2018-7-14 23:03:45 | 显示全部楼层
sanit 发表于 2018-7-14 22:12
直接上RL_USB吧,爽飞。主机和从机都比ST_USB好用,还稳定

好的,有空试试看
回复

使用道具 举报

20

主题

92

回帖

152

积分

初级会员

积分
152
 楼主| 发表于 2018-7-14 23:05:46 | 显示全部楼层
“Windows无法完成格式化”的原因正如eric2013所说,我的读写不对,FAT扇区是512的,我按1024的STM32页大小在操作。现在STM32F429的RAM模拟U盘可以了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-28 17:05 , Processed in 0.218249 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表