最近在做用U盘实现IAP固件升级,单独的串口接收文件后实现IAP升级,我自己已经调通了,U盘方便,参考例程,也可以进行读写了
现在的问题就是我要通过U盘把BIN文件读到一个数组后,就可以了,但是我用U盘读写txt是ok的,但是读取bin文件时,打开BIN文件时是正常的,返回打开成功,但是却读不到里面的内容,即f_open返回的是ok,但是res = f_read( &fsrc, read_txt_file_buff, sizeof(read_txt_file_buff) , &br );后,read_txt_file_buff数组里面没有内容,全部都是0,不知道是什么原因。
我在网上查了,都说bin文件时二进制文件,可以直接读取的,但是不知道为什么我读不到里面的内容,还请有经验的大侠指点一下啊
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
找到问题,在f_read读文件时,不知道为什么,只能读取少于1024个字节的数据,超过1024就读错误,所有我把一个文件分开多次读取,每次读取1024个字节,通过f_lseek定位下一次的读取开始位置,这样多次读取后就可以读出整个文件了。
算是完成了功能,但是我觉得f_read不应该有这个读写大小的限制,因为具体导致这个问题的原因还不太清楚。
一周热门 更多>