OpenEdv-开源电子网

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

TF卡 是否坏了

[复制链接]

1

主题

3

帖子

0

精华

新手入门

积分
27
金钱
27
注册时间
2015-3-11
在线时间
0 小时
发表于 2015-3-11 19:00:46 | 显示全部楼层 |阅读模式
5金钱
用STM32F107  ,用SPI模式操作一个16G的TF卡(卡是JD新买的)
1  开始写程序时,只对sector 0 读和写操作调试。都正常,也就没有在意。
2  过几天,想多写几个sector.发现只读写到  sector 0,1,2,3 ,后面的sector 就不行。
3  再在测试,发现,只能对 sector  0读写, 连sector 1,2,3都不能写了,只能读出sector 1,2,3以前写的数据。 
4   这时,再把TF卡同时插到电脑上,电脑没有反应。

我想知道,是不是因为 sector 0 写了随机的测试数据,所以电脑不能识?还是TF卡坏了?

如果是因为 sector 0 写了随机的测试数据,电脑不能识别,如何恢复。




最佳答案

查看完整内容[请看2#楼]

找到原因了。软件有bug同时,tf读卡器也有问题。两个一起来。谢谢。 顺便问一下,fatfs 系统中 DSTATUS disk_initialize (  BYTE pdrv    /* hysical drive nmuber to identify the drive */ ) 通过参数BYTE pdrv  来选择如下不通的物理驱动。如下: #define ATA  0 /* Example: Map&nb ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

3

帖子

0

精华

新手入门

积分
27
金钱
27
注册时间
2015-3-11
在线时间
0 小时
 楼主| 发表于 2015-3-11 19:00:47 | 显示全部楼层
找到原因了。软件有bug同时,tf读卡器也有问题。两个一起来。谢谢。

顺便问一下,fatfs 系统中

DSTATUS disk_initialize (
 BYTE pdrv    /* hysical drive nmuber to identify the drive */
)

通过参数BYTE pdrv  来选择如下不通的物理驱动。如下:

#define ATA  0 /* Example: Map ATA harddisk to physical drive 0 */
#define MMC  1 /* Example: Map MMC/SD card to physical drive 1 */
#define USB  2 /* Example: Map USB MSD to physical drive 2 */

我想问的事,应用层如何选择呀。我没有发现哪个APP的参数是选择物理层的。简单来说,我现在操作的是ATA(默认 0),如果要换成MMC,APP如何切换呀?
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-3-11 22:50:20 | 显示全部楼层
你这样乱写,很容易将卡写挂的....
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

2

主题

184

帖子

0

精华

高级会员

Rank: 4

积分
701
金钱
701
注册时间
2014-8-17
在线时间
164 小时
发表于 2015-3-12 00:03:03 | 显示全部楼层
接读卡器,有那种U盘量产工具之类的软件整整
回复

使用道具 举报

30

主题

705

帖子

1

精华

新手上路

积分
21
金钱
21
注册时间
2013-3-14
在线时间
52 小时
发表于 2015-3-12 13:49:30 | 显示全部楼层
楼主你只能用量产工具量产一下了,看能否修复好。
原子哥是不是又要出黑科技了呀。^_^...
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-3-12 22:20:39 | 显示全部楼层
回复【5楼】xhujian:
---------------------------------
在diskio.c里面,会根据一个输入参数来确定操作的是哪个磁盘的.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

1

主题

3

帖子

0

精华

新手入门

积分
27
金钱
27
注册时间
2015-3-11
在线时间
0 小时
 楼主| 发表于 2015-3-13 18:36:41 | 显示全部楼层
DSTATUS disk_initialize ( 
 BYTE pdrv    /* hysical drive nmuber to identify the drive */ 
)这个就是   diskio.c 。我想问的是   BYTE pdrv 这个参数,是如何哪个应用层过来的。简单来说,默认是0 如果有进想用1,换一个物理驱动。APP如何实现?
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-3-13 22:25:09 | 显示全部楼层
回复【7楼】xhujian:
---------------------------------
f_read(“0:\XXXX”),读磁盘0
f_read(“1:\XXXX”),读磁盘1
f_read(“2:\XXXX”),读磁盘2
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-24 20:25

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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