OpenEdv-开源电子网

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

移植正点原子SDIO+FATFS程序。开机后前五次内创建txt文件都能成功,第六次开始创建txt文件失败,SDIO底层报SD_DATA_TIMEOUT超时

[复制链接]

13

主题

41

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
270
金钱
270
注册时间
2014-8-4
在线时间
56 小时
发表于 2016-10-31 16:06:37 | 显示全部楼层 |阅读模式
本帖最后由 huifeidetuzi 于 2016-10-31 16:19 编辑

移植正点原子SDIO+FATFS程序,开机前五次内创建、读写文件无错误,从第六次开始,创建文件的时候SDIO底层报SD_DATA_TIMEOUT超时错误。程序如下:@八度空间 @八度空间 SD_Error SD_WriteBlock(u8 *buf,long long addr,  u16 blksize)//SD卡写一个块
{
.....
.....
....
while(((DMA2->LISR&(1<<27))==RESET)&&timeout)timeout--;
                if(timeout==0)
                {
                          SD_Init();                                                
                        return SD_DATA_TIMEOUT;                        
                 }
//将以下程序屏蔽,创建文件不会报错,还没测试,写卡会不会丢数。
//                timeout=SDIO_DATATIMEOUT;
//                while((TransferEnd==0)&&(TransferError==SD_OK)&&timeout)timeout--;
//                 if(timeout==0)return SD_DATA_TIMEOUT;                        
//                if(TransferError!=SD_OK)return TransferError;
         }  
         SDIO_ClearFlag(SDIO_STATIC_FLAGS);//&#199;&#229;3y&#203;ùóD±ê&#188;&#199;
         errorstatus=IsCardProgramming(&cardstate);
         while((errorstatus==SD_OK)&&((cardstate==SD_CARD_PROGRAMMING)||(cardstate==SD_CARD_RECEIVING)))
        {
                errorstatus=IsCardProgramming(&cardstate);
        }   

}
将以上程序屏蔽后,创建文件不会出错,但不知道写卡是否丢数。
请问那个大神遇到类似情况。如何解决的?

        




在吃苦的年纪,何必那么安逸?
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2016-11-1 09:04:10 | 显示全部楼层

回帖奖励 +2 金钱

将驱动调通在移植文件系统,就当SD卡是flash来调试,往块写入数据,再读取回来对比是否正确,多次测试就知道驱动行不行了
回复 支持 反对

使用道具 举报

13

主题

41

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
270
金钱
270
注册时间
2014-8-4
在线时间
56 小时
 楼主| 发表于 2016-11-1 10:34:02 | 显示全部楼层
八度空间 发表于 2016-11-1 09:04
将驱动调通在移植文件系统,就当SD卡是flash来调试,往块写入数据,再读取回来对比是否正确,多次测试就知 ...

驱动是好用的,可以正常的读写没问题。我是在串口中断里面进行创建的txt文件,前五次都可以创建的,之后就不行了。如果在大循环while里面进行创建txt文件是没有问题的。
我推测可能是中断打断txt文件创建。八度老师遇到过这样的问题吗?
在吃苦的年纪,何必那么安逸?
回复 支持 反对

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2016-11-1 12:42:52 | 显示全部楼层
huifeidetuzi 发表于 2016-11-1 10:34
驱动是好用的,可以正常的读写没问题。我是在串口中断里面进行创建的txt文件,前五次都可以创建的,之后 ...

SDIO是用DMA进行传输的话是不会被中断打断的
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-3-1 06:32

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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