SD卡多块读写死机问题

lmcfxl   2010-2-5 08:41 楼主
昨天利用STM32读写TF卡,遇到这样的怪事,
若执行如下程序:
Status = SD_WriteMultiBlocks(0x00, Buffer_MultiBlock_Tx, BlockSize, NumberOfBlocks);
就不会死机;
for(i=0;i<100;i++)
{
Status = SD_WriteMultiBlocks(0x00, Buffer_MultiBlock_Tx, BlockSize, NumberOfBlocks);
SendChar(i);
}
就会死机;
加入SendChar(i);是为了查看到底执行了几次;
死机位置为:
SD_Error SD_WriteMultiBlocks(u32 addr, u32 *writebuff, u16 BlockSize, u32 NumberOfBlocks)函数中的:
  while (DMA_GetFlagStatus(DMA2_FLAG_TC4) == RESET)
      {}
程序就一直停在这里了;
直到死机前,i的值为167,每次都是167,
也就是说程序执行一会就会死机,是什么原因呢

回复评论 (6)

RE: SD卡 多块读写死机问题

                                 上面的循环是for(i=0;i<1000;i++)
点赞  2010-2-5 09:03
没人回答
上网搜搜是老问题了,一直没有解决之道,算了,上了贼船了
点赞  2010-2-5 09:34
                                 这个确实很难解释啊
点赞  2010-2-5 22:50
                                 版主出来帮忙解释下嘛,看楼主抱怨的
点赞  2010-2-6 14:38
                                 我也很想知道程序为什么会跑死,按道理不会,碰到这种问题是很郁闷
点赞  2010-2-6 20:01
                                 做个标记,关注中
点赞  2010-2-10 15:10
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复