我正在使用atmega1284p,我需要从SD卡读取数据,并发送音频解码芯片我可以做到低比特率,更高的比特率单片机努力按时发送数据。关于我的研究实现了高比特率,文件可以读取多个块,读取第一个块后没有延迟。我分配了我的多块缓冲区,但不知道如何用ELM Chans FATFS库.Can F_read来做这件事,或任何其他建议。
发布于 2021-01-26 23:26:29
您必须告诉f_read(),您希望读取超过一个块大小的字节。
sect = clst2sect(fs, fp->clust); /* Get current sector */
if (sect == 0) ABORT(fs, FR_INT_ERR);
sect += csect;
cc = btr / SS(fs); /* When remaining bytes >= sector size, */
if (cc > 0) { /* Read maximum contiguous sectors directly */
if (csect + cc > fs->csize) { /* Clip at cluster boundary */
cc = fs->csize - csect;
}
if (disk_read(fs->pdrv, rbuff, sect, cc) != RES_OK) ABORT(fs, FR_DISK_ERR);
...
}这就是说,如果为f_read()提供的读取btr的字节数大于文件系统SS(fs)的扇区大小,则从块sect开始对cc块执行多数据块读取。
注:磁盘上的扇区类似于SD卡上的块。
https://stackoverflow.com/questions/64304315
复制相似问题