STM32的sdio问题

[复制链接]
4146|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

粉丝
快速回复 在线客服 返回列表 返回顶部