本帖最后由 dyxcrazy 于 2018-2-5 10:52 编辑
代码如下: STlink 调试时 调试到红 {MOD}代码时 if 条件都满足 为何没有进入到 下面函数 直接跳过去了,可能原因有哪些呢?@正点原子
另外,之前也写成功过,转移的一个图片 结果还丢数据了,而且以前nandflash 里的文件 给我干没了。。。。有重大影响吗?
转移的图 如下:
#include "sys.h"
#include "delay.h"
#include "ff.h"
#include "lcd.h"
#include "sdram.h"
#include "nand.h"
#include "malloc.h"
u8* sd_fpath="0:/readme.txt";
u8* nand_fpath="2:/back.bmp";
u8* ufpath="3:/pic/back.bmp";
//u8* ufpath2="3:/testdir";
//u8* ufpath3="3:/testdir/test.txt";
FATFS fatsd;
FATFS fatflash;
FATFS fatnand;
FIL fileobj;
FRESULT fr;
UINT brs;
DIR dirobj;
void USBtoNandFlash(void)
{FIL fp;
FRESULT fr;
u8 *read_pic_buff;
u8 *pic_buff;
//u8 pic_buff[200]="aaaaaaaa1234566";
//u8 write_pic_buff[255]="hello world!";
u32 br,bw;
u32 btr=100,btw=100;
DIR dp;
//read_pic_buff=mymalloc(SRAMEX,512*1024); //申请一个扇区的缓存
pic_buff=mymalloc(SRAMEX,512*1024);
if(pic_buff==NULL)return;
fr = f_open(&fp, (const TCHAR*)ufpath, FA_READ|FA_WRITE);
if(fr==FR_OK)
{
btr=f_size(&fp);
fr=f_read(&fp,pic_buff,btr,&br);
}
f_close(&fp);
if(fr==FR_OK)
{
btw=btr;
fr = f_open(&fp, (const TCHAR*)nand_fpath, FA_READ|FA_WRITE|FA_CREATE_ALWAYS);
if(fr==FR_OK)fr=f_write(&fp,pic_buff,btw,&bw);
if(fr==FR_OK)
{
POINT_COLOR=RED;
LCD_ShowString(30,300,200,16,16,"Write pic successed ");//写入成功
}
f_close(&fp);
}
myfree(SRAMEX,pic_buff);
//f_closedir(&dp);
//fr=fr;
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
管理表坏了,全片擦除,然后重新格式化。
感谢回复。我已经全片擦除了,但是利用 usb读卡器实验 slave 插到电脑里读出来的 大小是不对的 。电脑提示让我格式化 ,我也格式化了几次,都不对、不知道该怎么选择?如下图:
寄存器版本比较可靠点。发现问题,可以换寄存器版本试试。
一周热门 更多>