问题解决 答案在8楼!
更新:今天又随便 尝试了一下 在创建文件后 立刻 写了一个字符串进去 再存储我想要的数据 发现 就没有 那个多出三个00的问题了。。。。
那么问题来了?这是为什么呢、、、、、、、、
f_mount( 0, &fatfs );
if(f_open(&file,"0:ss.txt",FA_CREATE_ALWAYS | FA_WRITE) == FR_OK)
{
printf("创建文件OK
")
}
创建文件 已经成功了 接下来写数据
因为我 知道数据大小 每次都是2K字节 sizebuff就是1024*2
res= f_write (&file,buff,sizebuff,(void *)&bytesWritten);
当我写完 关闭文件之后 把U盘 插在电脑上 用16进制编辑器 打开
发现文件每 间隔2K字节 头三个数据 都是 00 00 00 这不是我的数据,莫名其妙产生的
同时导致 我的buff 包里面 最后 三个数据 被挤掉 没写入文件。
以前并没有这个问题的,现在不知道为什么 多了这个问题,求助各路大神
|文件开头
|
|
/
--------》 00 00 00 57 19 27 .........
..............
2K ...........
..........
--------》 00 00 00 ................
.................
2K
--------》00 00 00..................
2K ....................
--------》00 00 00.................
..................
2K
--------》00 00 00........................
.............................
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
---------------------------------
真的就是四字节对齐问题,应该这样写 __align(4) 没有e
感谢 大家的帮忙!!!!
一周热门 更多>