打印

STM32F103ZCT6的SDIO DMA跑得不见了?!

[复制链接]
4641|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
re张风|  楼主 | 2010-10-22 21:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我在片子上,SDIO用4位总线、查询模式,12MHz时钟能读写SD卡了,但是在测试DMA模式时,在代码中跑得不见了。
在:SD_Error SD_ReadMultiBlocks(uint32_t addr, uint32_t *readbuff, uint16_t BlockSize, uint32_t NumberOfBlocks) 函数中的DMA这一节:
    else if (DeviceMode == SD_DMA_MODE)
    {
      GPIO_SetBits ( GPIOA , GPIO_Pin_5 ); // by zxw
      GPIO_ResetBits ( GPIOA , GPIO_Pin_6 ); // by zxw
      GPIO_SetBits ( GPIOA , GPIO_Pin_7 ); // by zxw

      SDIO_ITConfig(SDIO_IT_DCRCFAIL | SDIO_IT_DTIMEOUT | SDIO_IT_DATAEND | SDIO_IT_RXOVERR | SDIO_IT_STBITERR, ENABLE);
      SDIO_DMACmd(ENABLE);
      DMA_RxConfiguration(readbuff, (NumberOfBlocks * BlockSize));
     while (DMA_GetFlagStatus(DMA2_FLAG_TC4) == RESET)
      {
          // by zxw
            GPIO_ResetBits ( GPIOA , GPIO_Pin_4 );
            GPIO_SetBits ( GPIOA , GPIO_Pin_4 );
      }
      GPIO_SetBits ( GPIOA , GPIO_Pin_6 );  // by zxw

      while ((TransferEnd == 0) && (TransferError == SD_OK))
      {
            GPIO_ResetBits ( GPIOA , GPIO_Pin_7 );
            GPIO_SetBits ( GPIOA , GPIO_Pin_7 );      
      }
      if (TransferError != SD_OK)
      {
        return(TransferError);
      }
    }
兰色部份跑得不见了。
这是这样观察的:
我定义了PA4、PA5、PA6、PA7为输出(我接有LED灯,IO为低时LED亮),在等待DMA状态时,PA4反复输出时钟,跳出DMA时,灭掉PA6接口上的灯。但结果是,PA4输出时钟400uS后,就停止了,但PA6的灯也没有灭,也就是程序跑得不见了,是怎么回事呢?
另外 ,使用该DMA模式需有那些地方要注意或调整,哦,对了,我用的3.0的库。谢谢
沙发
香水城| | 2010-10-23 11:25 | 只看该作者
有可能是存储器访问越界,看看有没有异常中断?

使用特权

评论回复
板凳
re张风|  楼主 | 2010-10-30 11:37 | 只看该作者
打开DMA后,程序唯一能去的地方,好像就只有中断代码部份了,即:SD_Error SD_ProcessIRQSrc(void)。但是,程序好像没有到这里来过。
将时钟降到8M以下时,可以运行完这一节:
while (DMA_GetFlagStatus(DMA2_FLAG_TC4) == RESET)
      {
      }
在接下来的这个等待处,就又不见(PA.5引脚没有任何反应)。
      while ((TransferEnd == 0) && (TransferError == SD_OK))
      {
                          // by zxw -----------------------------------
                        GPIO_ResetBits ( GPIOA , GPIO_Pin_5 );
                        GPIO_SetBits ( GPIOA , GPIO_Pin_5 );
                        //---------------------------------------------
          }

使用特权

评论回复
地板
lzh8430| | 2011-10-18 21:08 | 只看该作者
LZ问题是否解决了 我现在遇到这个问题 想请教一下 如何解决的

使用特权

评论回复
5
704292306| | 2015-5-29 12:23 | 只看该作者
LZ问题是否解决了 我现在遇到这个问题 想请教一下 如何解决的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:走,向前走,再走,继续走! http://www.uectr.com

51

主题

525

帖子

1

粉丝