打印

STM32的sdio问题

[复制链接]
3707|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
w6850916|  楼主 | 2011-6-8 17:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
小弟准备用STM32的SDIO模式与SD卡读写,程序就用固件库里的,虽有读写函数可我还是不明白怎么读写,写时是直接对哪个寄存器写啊?还有像mp3、wma格式的文件怎么写?     希望楼主和各位牛人指点一下啊!小弟先谢过了!!!
沙发
w6850916|  楼主 | 2011-6-9 08:47 | 只看该作者
1# w6850916 怎么没人回啊!自己顶一下吧1

使用特权

评论回复
板凳
IJK| | 2011-6-9 09:44 | 只看该作者
小弟准备用STM32的SDIO模式与SD卡读写,程序就用固件库里的,虽有读写函数可我还是不明白怎么读写,写时是直接对哪个寄存器写啊?还有像mp3、wma格式的文件怎么写?     希望楼主和各位牛人指点一下啊!小弟先谢过了 ...
w6850916 发表于 2011-6-8 17:38


STM32的固件库里的SDIO驱动,应该只实现逻辑块的读写,要实现文件级别的读写还需要加文件系统。STM32的Demo里应该实现了文件系统,记得是FatFs

使用特权

评论回复
地板
w6850916|  楼主 | 2011-6-9 15:17 | 只看该作者
3# IJK 谢谢你的回复,那数据块的读写是不是只能对一个数据块写一样的数据?
/*------------------- Block Read/Write --------------------------*/
  /* Fill the buffer to send */
  Fill_Buffer(Buffer_Block_Tx, BufferWordsSize, 0xFFFF);

  if (Status == SD_OK)
  {
    /* Write block of 512 bytes on address 0 */
    Status = SD_WriteBlock(0x00, Buffer_Block_Tx, BlockSize);
  }
  if (Status == SD_OK)
  {
    /* Read block of 512 bytes from address 0 */
    Status = SD_ReadBlock(0x00, Buffer_Block_Rx, BlockSize);
  }
  if (Status == SD_OK)
  {
    /* Check the corectness of written dada */
    TransferStatus1 = Buffercmp(Buffer_Block_Tx, Buffer_Block_Rx, BufferWordsSize);
  }


填充缓存器程序如下:
void Fill_Buffer(u32 *pBuffer, u16 BufferLenght, u32 Offset)
{
    u16 index = 0;
    /* Put in global buffer same values */
    for (index = 0; index < BufferLenght; index++ )
    {
        pBuffer[index] = index + Offset;
    }
}
程序走下来写入快的数据都是FF还是00?用这种方法写的数据块里的数据是不是都一样?

使用特权

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

本版积分规则

13

主题

126

帖子

5

粉丝