作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的 SD 卡有问题。我正在使用 FatFs 库版本 R0.10b 来访问 SD 卡。
我的代码:
// .... //
FATFS fatfs;
FIL plik;
FRESULT fresult,res1,res2,res3,res4,res5;
UINT zapisanych_bajtow = 0 , br;
UINT zapianie_bajtow = 0;
char * buffor = "123456789abcdef\r\n";
unsigned short int i;
void main(void) {
// ... //
res1 = f_mount(0,&fatfs); // returns FA_OK
res2 = f_open( &plik, "f721.txt", FA_OPEN_ALWAYS | FA_WRITE ); // returns FA_OK
if( res2 == FR_OK )
{
res3 = f_write( &plik, ( const void * ) buffor, 17, &zapisanych_bajtow ); // returns FR_DISK_ERR
}
res4 = f_close( &plik );// returns FR_DISK_ERR
for(;;)
{
}
}
知道可能出了什么问题吗?
最佳答案
我也遇到了类似的错误,只有一处不同。我尝试使用f_write函数一次写入4096字节。它总是返回 FR_DISK_ERR。这是因为我试图在 FatFS 的 FIL 结构中写入比 IO 缓冲区大小更多的内容(在 ff.h 中定义)。
typedef struct {
FATFS* fs; /* Pointer to the related file system object (**do not change order**) */
WORD id; /* Owner file system mount ID (**do not change order**) */
BYTE flag; /* Status flags */
BYTE err; /* Abort flag (error code) */
DWORD fptr; /* File read/write pointer (Zeroed on file open) */
DWORD fsize; /* File size */
DWORD sclust; /* File start cluster (0:no cluster chain, always 0 when fsize is 0) */
DWORD clust; /* Current cluster of fpter (not valid when fprt is 0) */
DWORD dsect; /* Sector number appearing in buf[] (0:invalid) */
DWORD dir_sect; /* Sector number containing the directory entry */
BYTE* dir_ptr; /* Pointer to the directory entry in the win[] */
DWORD* cltbl; /* Pointer to the cluster link map table (Nulled on file open) */
UINT lockid; /* File lock ID origin from 1 (index of file semaphore table Files[]) */
BYTE buf[_MAX_SS]; /* File private data read/write window */
} FIL;
最后一个数组buf[_MAX_SS]是文件IO缓冲区。但 _MAX_SS 是用户定义的参数(在 ff.h 中定义),因此您可以减少一次写入的字节数或最终更改 _MAX_SS 值。
我知道这不是你的情况,因为你一次只写入 17 个字节,但这对其他人可能有帮助。
关于sd-card - TMS320F2812 FatFs f_write 返回 FR_DISK_ERR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25384564/
我的 SD 卡有问题。我正在使用 FatFs 库版本 R0.10b 来访问 SD 卡。 我的代码: // .... // FATFS fatfs; FIL plik;
我正在尝试使用 FatFs libery 中的 f_write 函数循环保存 SD 卡上的大量文件,不幸的是,在最多 50 个循环条目之后,f_write 返回 FR_DISK_ERR。 做一个测试花
我是一名优秀的程序员,十分优秀!