OpenEdv-开源电子网

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

求助原子哥 STM32F4 开发板SD卡实验驱动代码 有误

[复制链接]

2

主题

10

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2018-8-19
在线时间
3 小时
发表于 2018-8-20 00:15:25 | 显示全部楼层 |阅读模式
1金钱
本帖最后由 李航兵 于 2018-8-20 00:27 编辑

       学习了原子哥的探索者开发板后,受益匪浅,于是打算自己设计琢磨原子哥给的例程。       最近在学习+半个研究F4的SDIO功能,先学习了SD底层驱动,在此发现原子哥程序的一处bug,或者说错误,
可能有些朋友以前发现过,但是我在教程中没有发觉,所以想来有必要注册会员发送此贴。
      SD卡,自己参照官方例程+原子哥程序写的,在官方程序上卡了很久(有三四天了),后来逐步替换原子哥的程序,结果发现了问题。
      首先说明一下问题所在地吧。
                   探索者F4\探索者F4 资料盘(A盘)\4,程序源码\2,标准例程-库函数版本\实验38 SD卡实验
  唔,就是这个实验,在SD卡驱动文件 sdio_sdcard.c 里面,在函数 SD_EnableWideBusOperation 内部,有一处调用有问题,就是第522行,
有一句 errorstatus=SDEnWideBus(WideMode); 看看SDEnWideBus定义为 SD_Error SDEnWideBus(u8 enx) 但初始化过程中WideMode的值为 SDIO_BusWide_4b,
打开宏定义可看到 #define SDIO_BusWide_4b                     ((uint32_t)0x00000800)
经强制转换后结果自然为0,也就是DISABLE,所以最终SD卡没有使能宽总线模式。
而我的代码有问题.....不知道什么原因,注释掉宽总线模式则正常运行,所以很烦。
这个问题望原子哥早日解决,嗯,或许可以由此提高SD卡读写速度。。。。。
也可能STM32F4本身的bug...
附图:

1.JPG

2.JPG
3.JPG
4.JPG
5.JPG

最佳答案

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

你可以试试我们寄存器版本的代码
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2018-8-20 00:15:26 | 显示全部楼层
你可以试试我们寄存器版本的代码
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

2

主题

10

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2018-8-19
在线时间
3 小时
 楼主| 发表于 2018-8-20 00:18:53 | 显示全部楼层
求解决、求解决!
回复

使用道具 举报

2

主题

10

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2018-8-19
在线时间
3 小时
 楼主| 发表于 2018-8-20 00:28:35 | 显示全部楼层
哇哈,怎么没人啊?还是明早起来看看吧。
回复

使用道具 举报

2

主题

10

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2018-8-19
在线时间
3 小时
 楼主| 发表于 2018-8-20 09:41:14 | 显示全部楼层
最后实验结果:在修改部分代码(使能宽总线模式)或使用寄存器版本,读取数据会出现先数据CRC错误,再出现响应超时错误
可能是板子的问题,也可能是卡的问题,目前原子哥的板子不在,不敢妄下结论,等待几日看看能否解决。
回复

使用道具 举报

2

主题

10

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2018-8-19
在线时间
3 小时
 楼主| 发表于 2018-8-20 09:42:06 | 显示全部楼层
我用的micro卡座
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2018-8-21 02:04:15 | 显示全部楼层
李航兵 发表于 2018-8-20 09:41
最后实验结果:在修改部分代码(使能宽总线模式)或使用寄存器版本,读取数据会出现先数据CRC错误,再出现 ...

我们在F4开发板上,还没测试到你这种问题。
micro也用过,用卡套就行了 。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

2

主题

10

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2018-8-19
在线时间
3 小时
 楼主| 发表于 2018-8-21 19:31:01 | 显示全部楼层
行,那等开学后再回去研究研究,帖子暂时到这了,
回复

使用道具 举报

6

主题

119

帖子

0

精华

高级会员

Rank: 4

积分
712
金钱
712
注册时间
2015-11-26
在线时间
139 小时
发表于 2018-8-22 14:04:41 | 显示全部楼层
st官方的例程挺好的啊   sd卡的驱动还支持RTOS
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-7 20:58

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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