OpenEdv-开源电子网

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

SD_FIFO上溢错误的问题

[复制链接]

18

主题

75

帖子

0

精华

初级会员

Rank: 2

积分
136
金钱
136
注册时间
2016-12-24
在线时间
29 小时
发表于 2017-1-29 20:52:41 | 显示全部楼层 |阅读模式
5金钱
新年了首先祝大家新年好,看帖回帖给帮助的17年发大财!!
一个SD卡读取块的程序,总是在发送CMD17命令后在SDIO_STA寄存器中总能读到RXOVERR,不知道为何,想请大神帮助解答一下FIFO发生上溢错误不就是读取速度太慢吗,还有情况能导致这个问题的发生?
2017-01-29 20-40-42.jpg 2017-01-29 20-41-09.jpg 读一个块的函数
2017-01-29 20-42-11.jpg 设置总线宽度的函数
2017-01-29 20-42-36.jpg 主函数
   最后,新年了,真心祝福大家新年好,给大家拜个年,感谢各位大神在我学习stm32的路上提供的帮助,希望大家鸡年行大运,谢谢大家!

最佳答案

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

找到问题了,程序本身没有什么错误,最大的错误在与464行和494行,两个判断语句错打成了“或”的关系,之所以出现溢出的问题,我想是因为我用仿真器仿真的缘故,因为硬件上单片机发送了CMD17命令后(如果命令没有错),单片机均能收到响应,而这些响应在SDIO的寄存器里一时半会改变不了(除非有新的命令执行),所以仿真器能够正确读出响应,然而仿真器能控制单片机的读,却无法控制SD卡的发,所以发送完CMD17后,SD卡一定已经开始 ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

18

主题

75

帖子

0

精华

初级会员

Rank: 2

积分
136
金钱
136
注册时间
2016-12-24
在线时间
29 小时
 楼主| 发表于 2017-1-29 20:52:42 | 显示全部楼层
找到问题了,程序本身没有什么错误,最大的错误在与464行和494行,两个判断语句错打成了“或”的关系,之所以出现溢出的问题,我想是因为我用仿真器仿真的缘故,因为硬件上单片机发送了CMD17命令后(如果命令没有错),单片机均能收到响应,而这些响应在SDIO的寄存器里一时半会改变不了(除非有新的命令执行),所以仿真器能够正确读出响应,然而仿真器能控制单片机的读,却无法控制SD卡的发,所以发送完CMD17后,SD卡一定已经开始不停地发数据了,由于单片机被控制着读取数据,但是它的读取时间由于仿真的关系必定大大低于实际实际,换句话说,SD卡可能发了已经一半数据了,而单片机才开始读,这就导致了每次SDIO_DCONT寄存器数值在开始的时候就不是初始的512,然后就是要不出现FIFO上溢错误,要不就是出现超时错误(实际上SD卡已经将数据发送光了,就没得发了)。
总结一句话,被仿真器害死了!!!!!
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2017-1-29 22:45:08 | 显示全部楼层
帮顶
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2017-1-29 22:45:11 | 显示全部楼层
回复

使用道具 举报

18

主题

75

帖子

0

精华

初级会员

Rank: 2

积分
136
金钱
136
注册时间
2016-12-24
在线时间
29 小时
 楼主| 发表于 2017-1-30 09:28:40 | 显示全部楼层

别光顶啊,原子哥,我是来求助的啊
回复

使用道具 举报

18

主题

75

帖子

0

精华

初级会员

Rank: 2

积分
136
金钱
136
注册时间
2016-12-24
在线时间
29 小时
 楼主| 发表于 2017-1-30 15:46:00 | 显示全部楼层
有人帮忙回答下吗?
回复

使用道具 举报

18

主题

75

帖子

0

精华

初级会员

Rank: 2

积分
136
金钱
136
注册时间
2016-12-24
在线时间
29 小时
 楼主| 发表于 2017-1-30 17:27:05 | 显示全部楼层
第464行  在判断STA寄存器状态时候写错了  应该是与的关系
运行的结果总是一会超时,一会就溢出的,请大神帮忙啊
回复

使用道具 举报

145

主题

477

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1264
金钱
1264
注册时间
2012-4-2
在线时间
69 小时
发表于 2017-1-30 19:33:37 | 显示全部楼层
帮顶
回复

使用道具 举报

14

主题

38

帖子

0

精华

初级会员

Rank: 2

积分
110
金钱
110
注册时间
2017-7-13
在线时间
27 小时
发表于 2017-9-27 16:55:25 | 显示全部楼层
楼主解决了吗  求助
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-19 20:12

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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