往U盘中写进230456字节的文件,转为16进制是38438大小的 但是只能写进33848字节,即16进制为8434,文件有一部分丢失了
在这里我定义 #define FILE_DATA_BUF_LEN 0x40000 /* 外部RAM的文件数据缓冲区,缓冲区长度不小于一次读写的数据长度 */
请问,是我的缓冲区哪里设置的大小不够吗?还是一次写进的扇区太多?写进的扇区有限制多少吗?
往U盘中写进230456字节的文件,转为16进制是38438大小的 但是只能写进33848字节,即16进制为8434,文件有一部分丢失了
在这里我定义 #define FILE_DATA_BUF_LEN 0x40000 /* 外部RAM的文件数据缓冲区,缓冲区长度不小于一次读写的数据长度 */
请问,是我的缓冲区哪里设置的大小不够吗?还是一次写进的扇区太多?写进的扇区有限制多少吗?
有一个问题,我们库里面做了一个写的数据的扇区数最多为255个扇区,也就是说你在写的数据,可以分2次来写,第一次写255个扇区,第2次写剩下的扇区就可以了,如果你写的扇区按照上面算的话,应该是你的扇区16进制的补码的数据才对
"如果你写的扇区按照上面算的话,应该是你的扇区16进制的补码的数据才对” 不明白这个是什么意思? 还有如果一次最多能写255个扇区的话,那么有255*512=130560个字节了,为什么我第一次只能写进33848个字节呢
不是按照你这样算的,当你写的扇区数超过255字节之后,那么,送下去的数据只能是你低8位的数据,不是按照你算的255*512这样算的,你按照我上面的方法试下看可以不可以往里面写数据进去
今天又得继续这个问题了,请相关的技术人员解答一下,谢谢!
请问HCN:如果我分两次写进,应该怎么操作呢?
实际操作很简单,你可以循环的往下面写数据,可以一次写一个扇区,只要你每次写完之后将你下次要写的数据送到DISK-BASE-BUF里面去就可以继续往下写了