OpenEdv-开源电子网

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

求大牛指点~~使用fatfs的f_open函数读取SD卡的文件,陷入了死循环

[复制链接]

20

主题

134

帖子

0

精华

高级会员

Rank: 4

积分
550
金钱
550
注册时间
2016-7-26
在线时间
90 小时
发表于 2018-4-11 14:36:58 | 显示全部楼层 |阅读模式
50金钱
调试跟踪进去,发现程序执行到 SD_ReadBlock 函数,然后进入到下面的while循环中无法跳出,实在搞不懂是怎么回事。求大神指点迷津


[mw_shl_code=c,true]                while(!(SDIO->STA&((1<<5)|(1<<1)|(1<<3)|(1<<10)|(1<<9))))//&#206;Té&#207;ò&#231;/CRC/3&#172;ê±/íê3é(±ê&#214;&#190;)/&#198;eê&#188;&#206;&#187;′í&#206;ó
                {
                        if(SDIO->STA&(1<<15))                                                //&#189;óê&#213;&#199;&#248;°&#235;&#194;ú,±íê&#190;&#214;áéù′&#230;á&#203;8&#184;&#246;×&#214;
                        {
                                for(count=0;count<8;count++)                        //&#209;-&#187;·&#182;áè&#161;êy&#190;Y
                                {
                                        *(tempbuff+count)=SDIO->FIFO;
                                }
                                tempbuff+=8;         
                                timeout=0X7FFFF;
                        }else         //′|àí3&#172;ê±
                        {
                                if(timeout==0)return SD_DATA_TIMEOUT;
                                timeout--;
                        }
                } [/mw_shl_code]


最佳答案

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

我后来把FATFS、FIL这些重新定义了全局变量,没有用之前的exfuns_init初始化的那些指针,然后就正常了,不懂这是什么原理
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

20

主题

134

帖子

0

精华

高级会员

Rank: 4

积分
550
金钱
550
注册时间
2016-7-26
在线时间
90 小时
 楼主| 发表于 2018-4-11 14:36:59 | 显示全部楼层

我后来把FATFS、FIL这些重新定义了全局变量,没有用之前的exfuns_init初始化的那些指针,然后就正常了,不懂这是什么原理
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2018-4-12 00:26:04 | 显示全部楼层
是我们板子么?
回复

使用道具 举报

20

主题

134

帖子

0

精华

高级会员

Rank: 4

积分
550
金钱
550
注册时间
2016-7-26
在线时间
90 小时
 楼主| 发表于 2018-4-12 09:07:35 | 显示全部楼层

参考探索者做的板子,基本是一样的,之前正常,后面在工程里又加个一些其他不相关的程序,这就出错了
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2018-4-13 01:44:45 | 显示全部楼层
wanyingwe 发表于 2018-4-12 09:10
我后来把FATFS、FIL这些重新定义了全局变量,没有用之前的exfuns_init初始化的那些指针,然后就正常了, ...

指针需要申请内存。
全局变量这是占了内存的。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

20

主题

134

帖子

0

精华

高级会员

Rank: 4

积分
550
金钱
550
注册时间
2016-7-26
在线时间
90 小时
 楼主| 发表于 2018-4-16 20:36:14 | 显示全部楼层
正点原子 发表于 2018-4-13 01:44
指针需要申请内存。
全局变量这是占了内存的。

之前用的原子哥的方式,定义指针申请内存,但是就出现了错误,随便试了直接定义变量,就正常了,这中间有什么区别呢。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-8 21:31

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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