OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 27587|回复: 51

STM32F207 读写U盘调试成功(有图有真相)!!!

[复制链接]

48

主题

537

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
1369
金钱
1369
注册时间
2014-2-13
在线时间
169 小时
发表于 2014-11-1 11:32:03 | 显示全部楼层 |阅读模式
单片机:STM32F207ZE
库函数版本:V1.1.2
USB版本:V2.1.0
文件系统版本:R0.09b
操作系统:无


注:另送短诗一首。

原理图:



注:USB_ID(PA10)接地,默认主机模式。

工程文件:

207U盘调试.zip

12.63 MB, 下载次数: 17563

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

48

主题

537

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
1369
金钱
1369
注册时间
2014-2-13
在线时间
169 小时
 楼主| 发表于 2014-11-1 11:55:16 | 显示全部楼层
遗留问题:
1、不能用文件系统格式化U盘(SD测试过没问题)。
2、文件系统支持长文件名,希望把转换表放到片外FLASH里。
3、文件系统获取时间没实现。
回复 支持 反对

使用道具 举报

3

主题

84

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
373
金钱
373
注册时间
2013-10-23
在线时间
187 小时
发表于 2014-11-1 13:20:27 | 显示全部楼层
好顶赞!!!
回复 支持 反对

使用道具 举报

48

主题

537

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
1369
金钱
1369
注册时间
2014-2-13
在线时间
169 小时
 楼主| 发表于 2014-11-1 15:40:43 | 显示全部楼层
回复【3楼】ExiBQ:
---------------------------------
谢谢
回复 支持 反对

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2014-11-1 17:52:25 | 显示全部楼层
回复【2楼】solo:
---------------------------------
1、fatfs好像有容量大小限制,没验证过,待原子哥解释
2、这个原子哥例程有
3、这个我在论坛发过,搜索即可
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-11-1 21:35:39 | 显示全部楼层
U盘格式化我也没试过,呵呵
FATFS就支持FAT16、FAT32等
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

48

主题

537

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
1369
金钱
1369
注册时间
2014-2-13
在线时间
169 小时
 楼主| 发表于 2014-11-2 09:52:19 | 显示全部楼层
回复【5楼】Badu_Space:
---------------------------------操作
2、原子哥的把_MAX_LFN的缓存放到堆栈上了,自己实现了mymalloc内存管理,我的工程不允许使用内存管理FLASH也没有挂载文件系统,只能在给定地址范围内操作。
3、我研究下。
回复 支持 反对

使用道具 举报

48

主题

537

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
1369
金钱
1369
注册时间
2014-2-13
在线时间
169 小时
 楼主| 发表于 2014-11-2 09:55:26 | 显示全部楼层
回复【6楼】正点原子:
---------------------------------
这几个格式都试过了,U盘是4G的失败,SD卡4G的成功了。通过SD卡测试,实际上SD不论是什么格式的(FAT12、16、32、NTFS,跟簇的大小也无关),执行格式化时都会把SD卡格式化成FAT32格式。
回复 支持 反对

使用道具 举报

48

主题

537

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
1369
金钱
1369
注册时间
2014-2-13
在线时间
169 小时
 楼主| 发表于 2014-11-3 15:41:55 | 显示全部楼层
2、已实现支持长文件名(不支持中文)
实现前:


实现后:


ZI-data增加了192字节(包含新加的了RTC部分)。

#define _CODE_PAGE 437 //437  - U.S. (OEM)
#define _USE_LFN 1 /* 0 to 3 【用于使能长文件名功能】*/
#define _MAX_LFN 64 /* Maximum LFN length to handle (12 to 255) */

2、文件系统获取时间以实现。
[mw_shl_code=c,true]DWORD get_fattime (void) { u32 ttime; u32 date=0; RTC_TimeTypeDef RTC_TimeStructure; RTC_DateTypeDef RTC_DateStructure; RTC_GetDate(RTC_Format_BIN, &RTC_DateStructure);//获取当前日期 RTC_GetTime(RTC_Format_BIN, &RTC_TimeStructure);//获取当前时间 ttime = RTC_DateStructure.RTC_Year+20; //得到年份 date |= ttime<<25; ttime = RTC_DateStructure.RTC_Month; //得到月份 date |= ttime<<21; ttime = RTC_DateStructure.RTC_Date; //得到日期 date |= ttime<<16; ttime = RTC_TimeStructure.RTC_Hours; //得到时钟 date |= ttime<<11; ttime = RTC_TimeStructure.RTC_Minutes; //得到分钟 date |= ttime<<5; date |= RTC_TimeStructure.RTC_Seconds>>1;//得到秒钟 return date; }[/mw_shl_code]


207U盘调试.zip

13.1 MB, 下载次数: 9287

回复 支持 反对

使用道具 举报

48

主题

537

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
1369
金钱
1369
注册时间
2014-2-13
在线时间
169 小时
 楼主| 发表于 2014-11-3 15:55:53 | 显示全部楼层
想实现中文支持并把转换表放到flash了的,参考战舰的综合程序稍作修改就可以了。
回复 支持 反对

使用道具 举报

52

主题

142

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
441
金钱
441
注册时间
2013-10-17
在线时间
23 小时
发表于 2014-11-24 10:14:01 | 显示全部楼层
为什么我从官方只能下载到HAL的驱动,每个库函数名称都变成Hal_xxxx ,你这个库函数在哪下载的?
回复 支持 反对

使用道具 举报

48

主题

537

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
1369
金钱
1369
注册时间
2014-2-13
在线时间
169 小时
 楼主| 发表于 2014-11-24 11:41:52 | 显示全部楼层
回复【11楼】The_Professo_Lee:
---------------------------------
神州开发板历程里改的,准确的说是官方的STM32_EVAL开发板的历程
回复 支持 反对

使用道具 举报

52

主题

142

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
441
金钱
441
注册时间
2013-10-17
在线时间
23 小时
发表于 2014-11-24 16:27:44 | 显示全部楼层
回复【12楼】solo:
---------------------------------
STM32_EVAL不是stm32f207zet6呀
回复 支持 反对

使用道具 举报

48

主题

537

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
1369
金钱
1369
注册时间
2014-2-13
在线时间
169 小时
 楼主| 发表于 2014-11-24 20:29:26 | 显示全部楼层
回复【13楼】The_Professo_Lee:
---------------------------------
Eval文件是ST公司提供的几种测试评估样板的硬件定义文件,简单点说就是把板子上的每个硬件接口都起个名字,编程的时候用的是硬件的名字而不是本来的端口名。这个文件必须对应相应的硬件主板,3.5的库里现在有6种不同的板子,您可以在stm32_eval.h这个文件中看到。你也可以仿照这个文件自己定义其它的开发板硬件。
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
21
金钱
21
注册时间
2015-7-11
在线时间
0 小时
发表于 2015-7-12 09:52:01 | 显示全部楼层
赞,真心很有帮助
回复 支持 反对

使用道具 举报

48

主题

537

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
1369
金钱
1369
注册时间
2014-2-13
在线时间
169 小时
 楼主| 发表于 2015-7-13 08:46:15 | 显示全部楼层
回复【15楼】宋钰:
---------------------------------
谢谢
回复 支持 反对

使用道具 举报

7

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
64
金钱
64
注册时间
2015-9-30
在线时间
2 小时
发表于 2015-10-1 23:47:18 | 显示全部楼层
回复【16楼】solo:
---------------------------------
205的板子在您的程序上改了一下,插拔优盘的时候为什么不进中断呢?能帮忙看看么?谢谢!
回复 支持 反对

使用道具 举报

48

主题

537

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
1369
金钱
1369
注册时间
2014-2-13
在线时间
169 小时
 楼主| 发表于 2015-10-6 12:35:40 | 显示全部楼层
回复【17楼】dms_625:
---------------------------------
205的片子没有,不过应该和207用同一个库
回复 支持 反对

使用道具 举报

3

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
68
金钱
68
注册时间
2014-9-9
在线时间
6 小时
发表于 2015-10-12 11:42:54 | 显示全部楼层
大神,有105/107的例子吗?
回复 支持 反对

使用道具 举报

48

主题

537

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
1369
金钱
1369
注册时间
2014-2-13
在线时间
169 小时
 楼主| 发表于 2015-10-13 08:18:13 | 显示全部楼层
回复【19楼】xin:
---------------------------------
没有
回复 支持 反对

使用道具 举报

2

主题

17

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2016-1-15
在线时间
12 小时
发表于 2016-1-15 14:21:54 | 显示全部楼层
厉害,功能做得真强大。楼主,想问问,你这个做的是STM32可以接U盘,还是说把STM32当做是U盘,可以插到电脑上当U盘?
回复 支持 反对

使用道具 举报

48

主题

537

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
1369
金钱
1369
注册时间
2014-2-13
在线时间
169 小时
 楼主| 发表于 2016-1-15 15:05:41 | 显示全部楼层
lr6410 发表于 2016-1-15 14:21
厉害,功能做得真强大。楼主,想问问,你这个做的是STM32可以接U盘,还是说把STM32当做是U盘,可以插到电脑 ...

接U盘
回复 支持 反对

使用道具 举报

2

主题

17

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2016-1-15
在线时间
12 小时
发表于 2016-1-16 10:57:41 | 显示全部楼层

多谢回复!

还是想请教一下,如果想做成STM32当做是U盘,插接到电脑上被识别成U盘,又该怎么做呢?
回复 支持 反对

使用道具 举报

48

主题

537

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
1369
金钱
1369
注册时间
2014-2-13
在线时间
169 小时
 楼主| 发表于 2016-1-16 11:36:46 | 显示全部楼层
lr6410 发表于 2016-1-16 10:57
多谢回复!

还是想请教一下,如果想做成STM32当做是U盘,插接到电脑上被识别成U盘,又该怎么做呢?

这个论坛上有,单片机读U盘是主机模式,单片机做U盘是从机模式。
回复 支持 反对

使用道具 举报

2

主题

17

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2016-1-15
在线时间
12 小时
发表于 2016-1-18 10:03:06 | 显示全部楼层
solo 发表于 2016-1-16 11:36
这个论坛上有,单片机读U盘是主机模式,单片机做U盘是从机模式。

多谢,我知道单片机做U盘是从机模式,但具体的没有参考代码,官方的固件demo我都试过,都不行,也改过一些参数。

能告诉我哪里有我需要的参考demo吗,在这里个论坛里面有没有呢,我现在觉得很难往下搞了。
回复 支持 反对

使用道具 举报

48

主题

537

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
1369
金钱
1369
注册时间
2014-2-13
在线时间
169 小时
 楼主| 发表于 2016-1-18 11:41:25 | 显示全部楼层
lr6410 发表于 2016-1-18 10:03
多谢,我知道单片机做U盘是从机模式,但具体的没有参考代码,官方的固件demo我都试过,都不行,也改过一 ...

这个我没做,但是原子哥的综合里程里有
回复 支持 反对

使用道具 举报

4

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2015-10-6
在线时间
9 小时
发表于 2016-1-24 17:27:12 | 显示全部楼层
楼主你这个是串口小助手通过电脑和STM直接通讯?
回复 支持 反对

使用道具 举报

48

主题

537

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
1369
金钱
1369
注册时间
2014-2-13
在线时间
169 小时
 楼主| 发表于 2016-1-25 08:01:29 | 显示全部楼层
lele 发表于 2016-1-24 17:27
楼主你这个是串口小助手通过电脑和STM直接通讯?

是滴
回复 支持 反对

使用道具 举报

4

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2015-10-6
在线时间
9 小时
发表于 2016-1-25 12:28:21 | 显示全部楼层

楼主想请教一下,我想用STM32F103读写U盘,该怎么办,晚上说用CH374,或者376请问一下具体的连接原理图怎么连接
回复 支持 反对

使用道具 举报

48

主题

537

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
1369
金钱
1369
注册时间
2014-2-13
在线时间
169 小时
 楼主| 发表于 2016-1-25 16:46:43 | 显示全部楼层
lele 发表于 2016-1-25 12:28
楼主想请教一下,我想用STM32F103读写U盘,该怎么办,晚上说用CH374,或者376请问一下具体的连接原理图怎 ...

首先103不支持主机模式,不能直接做读写U盘的设备。如果用CH374模块51一样能实现读写U盘,因为这部分已经集成到模块里了。具体怎么和CH374模块通讯,淘宝买一块代码就有了。
回复 支持 反对

使用道具 举报

4

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2015-10-6
在线时间
9 小时
发表于 2016-1-25 21:35:04 | 显示全部楼层
回复 支持 反对

使用道具 举报

4

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2015-10-6
在线时间
9 小时
发表于 2016-1-25 21:35:21 | 显示全部楼层
solo 发表于 2016-1-25 16:46
首先103不支持主机模式,不能直接做读写U盘的设备。如果用CH374模块51一样能实现读写U盘,因为这部分已经 ...

谢谢啊
回复 支持 反对

使用道具 举报

4

主题

40

帖子

0

精华

初级会员

Rank: 2

积分
188
金钱
188
注册时间
2016-3-31
在线时间
42 小时
发表于 2016-4-6 01:24:40 | 显示全部楼层
想用stm32来读取u盘里面的文件,其他要求是串口、can口、spi。请问用哪个型号合适?
回复 支持 反对

使用道具 举报

48

主题

537

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
1369
金钱
1369
注册时间
2014-2-13
在线时间
169 小时
 楼主| 发表于 2016-4-6 08:04:27 | 显示全部楼层
GY2016 发表于 2016-4-6 01:24
想用stm32来读取u盘里面的文件,其他要求是串口、can口、spi。请问用哪个型号合适?

只要带OTG功能的都合适,F1的互联性、F2、F4
回复 支持 反对

使用道具 举报

4

主题

40

帖子

0

精华

初级会员

Rank: 2

积分
188
金钱
188
注册时间
2016-3-31
在线时间
42 小时
发表于 2016-4-6 09:52:15 | 显示全部楼层
solo 发表于 2016-4-6 08:04
只要带OTG功能的都合适,F1的互联性、F2、F4

恩 我看了选型册,很多都带了OTG,又分了FS和HS,现在哪款主流些,这样价格可能也更好接受
初步选定,F205和F405,不需要以太网
回复 支持 反对

使用道具 举报

48

主题

537

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
1369
金钱
1369
注册时间
2014-2-13
在线时间
169 小时
 楼主| 发表于 2016-4-6 12:41:06 | 显示全部楼层
GY2016 发表于 2016-4-6 09:52
恩 我看了选型册,很多都带了OTG,又分了FS和HS,现在哪款主流些,这样价格可能也更好接受
初步选定,F2 ...

F1和F4比较热门,F2过渡产品,F7新兴产品,具体看价格和需求
回复 支持 反对

使用道具 举报

6

主题

39

帖子

0

精华

初级会员

Rank: 2

积分
86
金钱
86
注册时间
2016-4-3
在线时间
16 小时
发表于 2016-5-5 16:19:35 | 显示全部楼层
张凯 --  994099840  加我 QQ   帮助我一下吧   我的只能写成功  读不出来
回复 支持 反对

使用道具 举报

48

主题

537

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
1369
金钱
1369
注册时间
2014-2-13
在线时间
169 小时
 楼主| 发表于 2016-5-6 08:19:20 | 显示全部楼层
张凯-123 发表于 2016-5-5 16:19
张凯 --  994099840  加我 QQ   帮助我一下吧   我的只能写成功  读不出来

是不是文件系统的事,返回什么值
回复 支持 反对

使用道具 举报

6

主题

39

帖子

0

精华

初级会员

Rank: 2

积分
86
金钱
86
注册时间
2016-4-3
在线时间
16 小时
发表于 2016-5-10 10:59:58 | 显示全部楼层
solo 发表于 2016-5-6 08:19
是不是文件系统的事,返回什么值

我的只能写入  读不出    串口显示的问题    串口总是显示乱码    我的串口定义应该是
没有错的
回复 支持 反对

使用道具 举报

6

主题

39

帖子

0

精华

初级会员

Rank: 2

积分
86
金钱
86
注册时间
2016-4-3
在线时间
16 小时
发表于 2016-5-10 11:22:48 | 显示全部楼层
solo 发表于 2016-1-25 16:46
首先103不支持主机模式,不能直接做读写U盘的设备。如果用CH374模块51一样能实现读写U盘,因为这部分已经 ...

我用的F103C8T6最小系统   加上CH376S     可以实现对U盘的操作  新建 删除  添加  都可以实现  
回复 支持 反对

使用道具 举报

6

主题

39

帖子

0

精华

初级会员

Rank: 2

积分
86
金钱
86
注册时间
2016-4-3
在线时间
16 小时
发表于 2016-5-10 11:23:49 | 显示全部楼层
solo 发表于 2016-5-6 08:19
是不是文件系统的事,返回什么值

按理说   串口应该显示的是文本或者自己定义的输出信息   现在显示乱码   
回复 支持 反对

使用道具 举报

48

主题

537

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
1369
金钱
1369
注册时间
2014-2-13
在线时间
169 小时
 楼主| 发表于 2016-5-11 08:05:37 | 显示全部楼层
张凯-123 发表于 2016-5-10 10:59
我的只能写入  读不出    串口显示的问题    串口总是显示乱码    我的串口定义应该是
没有错的

串口有问题就调试串口
回复 支持 反对

使用道具 举报

48

主题

537

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
1369
金钱
1369
注册时间
2014-2-13
在线时间
169 小时
 楼主| 发表于 2016-5-11 08:06:23 | 显示全部楼层
张凯-123 发表于 2016-5-10 11:22
我用的F103C8T6最小系统   加上CH376S     可以实现对U盘的操作  新建 删除  添加  都可以实现

CH376S这个是USB模块,跟单片机无关,51一样用
回复 支持 反对

使用道具 举报

0

主题

30

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
326
金钱
326
注册时间
2014-8-15
在线时间
89 小时
发表于 2016-5-24 19:45:03 | 显示全部楼层
...................................................................
回复 支持 反对

使用道具 举报

145

主题

477

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1264
金钱
1264
注册时间
2012-4-2
在线时间
69 小时
发表于 2016-9-19 10:34:58 | 显示全部楼层
好强大
回复 支持 反对

使用道具 举报

48

主题

537

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
1369
金钱
1369
注册时间
2014-2-13
在线时间
169 小时
 楼主| 发表于 2016-9-20 08:09:44 | 显示全部楼层
升级版本STM32 USB_Host V2.2.0,比V2.1.0兼容性更好,支持的U盘更多。
http://www.openedv.com/forum.php?mod=viewthread&tid=84231&page=1#pid479141

回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

新手入门

积分
19
金钱
19
注册时间
2016-10-13
在线时间
5 小时
发表于 2016-10-13 16:50:44 | 显示全部楼层
楼主可不可以详细介绍下你的工程和实验效果?
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

新手入门

积分
19
金钱
19
注册时间
2016-10-13
在线时间
5 小时
发表于 2016-10-17 13:54:06 | 显示全部楼层
solo 发表于 2016-9-20 08:09
升级版本STM32 USB_Host V2.2.0,比V2.1.0兼容性更好,支持的U盘更多。
http://www.openedv.com/forum.php ...

楼主这个代码在keil下面好多报错,是keil的原因还是工程有问题?涉及到汇编的地方都报错基本上
回复 支持 反对

使用道具 举报

48

主题

537

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
1369
金钱
1369
注册时间
2014-2-13
在线时间
169 小时
 楼主| 发表于 2016-10-25 22:57:40 | 显示全部楼层
longgeaixiaoti 发表于 2016-10-17 13:54
楼主这个代码在keil下面好多报错,是keil的原因还是工程有问题?涉及到汇编的地方都报错基本上

项目中用的代码。。。我用keil5.1
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
8
金钱
8
注册时间
2017-7-18
在线时间
2 小时
发表于 2017-7-18 16:42:34 | 显示全部楼层
u盘读写文件带格式吗
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-29 08:58

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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