OpenEdv-开源电子网

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

SD卡的又一疑问

[复制链接]

10

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
85
金钱
85
注册时间
2013-5-21
在线时间
0 小时
发表于 2013-10-9 22:56:19 | 显示全部楼层 |阅读模式
    SD卡可以由spi驱动。SPI可以有四种模式,即对数据线高电平还是低电平代表空闲和第一个跳变沿还是第二个条边沿始传输进行选择,共有四种方式。在FLASH那章,我看到手册上说华邦FLASH支持方式0和方式3.但是在SD卡资料上没有找到(可能英语差没看到)。所以不知道为什么如下设置。我更改下面的配置换种方式,发现基于SD卡实验是可以正常初始化并且可以正确
读出SD卡大小的。但是在FATS的试验下同样的更改,FATS初始化失败。


        SPI_InitStructure.SPI_CPOL = SPI_CPOL_High; //选择了串行时钟的稳态:时钟悬空高
SPI_InitStructure.SPI_CPHA = SPI_CPHA_2Edge; //数据捕获于第二个时钟沿
 
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

10

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
85
金钱
85
注册时间
2013-5-21
在线时间
0 小时
 楼主| 发表于 2013-10-9 23:04:07 | 显示全部楼层
补充:在SD卡基础实验上,只有 SPI_InitStructure.SPI_CPOL = SPI_CPOL_High; //选择了串行时钟的稳态:时钟悬空高
SPI_InitStructure.SPI_CPHA = SPI_CPHA_1Edge; //数据捕获于第二个时钟沿
这种情况初始化才不成功,而另外三种都可以。
在FATS的试验下,只要SPI_InitStructure.SPI_CPHA = SPI_CPHA_1Edge;就初始化不能通过换成SPI_CPHA_2Edge就没有问题
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-10-9 23:09:34 | 显示全部楼层
回复【楼主位】where1993:
---------------------------------
你想改为什么模式?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

10

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
85
金钱
85
注册时间
2013-5-21
在线时间
0 小时
 楼主| 发表于 2013-10-9 23:11:48 | 显示全部楼层
回复【3楼】正点原子:
---------------------------------
比如 SPI_InitStructure.SPI_CPOL = SPI_CPOL_Low; //选择了串行时钟的稳态:时钟悬空低
SPI_InitStructure.SPI_CPHA = SPI_CPHA_1Edge; //数据捕获于第一个时钟沿
在SD基础实验就没有问题,但是在FATS实验就不行
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-10-10 23:52:05 | 显示全部楼层
回复【4楼】where1993:
---------------------------------
拿寄存器版本试试
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

10

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
85
金钱
85
注册时间
2013-5-21
在线时间
0 小时
 楼主| 发表于 2013-10-13 21:02:21 | 显示全部楼层
回复【5楼】正点原子:
---------------------------------
原子哥问个问题
我在原子哥的战舰上看到原子哥把FLASH也作为文件系统了。可它没有进行过格式化啊。我看了一下FATFS的说明,f_mkfs此函数可以对存储介质目标进行格式化.但是我没有看到原子哥的程序调用此函数啊。还有一个问题,就是此函数对SD卡的格式化是否和用PC机对SD卡格式化的效果是一样的。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-10-14 14:46:57 | 显示全部楼层
有用到的,你没找到罢了。
和windows格式化一样效果。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

10

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
85
金钱
85
注册时间
2013-5-21
在线时间
0 小时
 楼主| 发表于 2013-10-14 21:52:37 | 显示全部楼层
看来是我看代码不够仔细。还有一个疑问如图:
这是PC机上写入的



这是在STM32上移植了FATFS后复制前面的文件内容到一个新的文件里。不知道为什么会出现这种情况,乱码不说,为何出现这种样子的txt文件。




这文件是直接用stm32写的,不知道为什么是这种格式。












回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-10-14 23:27:04 | 显示全部楼层
不知道你怎么写的哦。那些英文内容,是你自己写入的吧?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

10

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
85
金钱
85
注册时间
2013-5-21
在线时间
0 小时
 楼主| 发表于 2013-10-15 20:58:20 | 显示全部楼层
回复【9楼】正点原子:
---------------------------------
英文是自己写的!
 代码是这样的。
f_rec=(FIL*)mymalloc(SRAMIN,sizeof(FIL)); //为frec申请内存
f_sen=(FIL*)mymalloc(SRAMIN,sizeof(FIL)); //为fsen申请内存
res=f_open(f_rec,"ZNMCU.TXT",FA_READ|FA_OPEN_EXISTING);
res=f_open(f_sen,"copy.TXT",FA_WRITE|FA_CREATE_ALWAYS);

if(res==FR_OK)
{
 while(1){
                res=f_read(f_rec,buf,100,&br);
res=f_write(f_sen,buf,100,&bw);
if((br<100)||res) break;
 }
  }
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-10-16 11:51:52 | 显示全部楼层
你检查下你的buf里面的数据
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

10

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
85
金钱
85
注册时间
2013-5-21
在线时间
0 小时
 楼主| 发表于 2013-10-16 20:47:12 | 显示全部楼层
回复【11楼】正点原子:
--------------------------------
知道问题的原因了,buf数据字节数,和我要写入的字节数不匹配!谢谢。
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-10 19:38

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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