[mw_shl_code=c,true] OS_CRITICAL_ENTER();//½øèëáù½çÇø
fname=mymalloc(SRAMEX,64); //éêÇëÄú′æ
sprintf((char*)fname,"0:BACKP");
fname1=mymalloc(SRAMEX,64); //éêÇëÄú′æ
sprintf((char*)fname1,"1:");
res=mf_dcopy(fname,fname1,1);
myfree(SRAMEX,fname);
myfree(SRAMEX,fname1);
OS_CRITICAL_EXIT(); //íË3öáù½çÇø
if(res==0)daoru_flag=2;
else daoru_flag=3;[/mw_shl_code]
为什么我复制始终失败,很奇怪
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
谢谢你,我那个现在问题也找到了,是因为sd卡的引脚和串口5引脚复用的问题,正好串口5和模块使用排线连接的,我将排线断开就可以了,但是现在还是有些问题,sd卡往spiflash里写特别慢,第二,我复用的串口5明明在初始化sd卡前就禁止使能串口中断了,也将io口设成了别的模式,但是就是不行,这个不知道怎么办才好了,实际应用线是都得连接的,不能断开的,愁人
[mw_shl_code=c,true]void copyTF2Flash(uint8_t * tfName, uint8_t * flashName) {
f_res = f_open(&file_sd, tfName, FA_OPEN_EXISTING | FA_READ);
printf_fatfs_error(f_res);
if (f_res == FR_OK)
{
f_res = f_open(&file_flash, flashName, FA_CREATE_ALWAYS | FA_WRITE);
printf_fatfs_error(f_res);
}
while (f_res == 0)
{
f_res = f_read(&file_sd, buffer, sizeof(buffer), &br);
printf("f_res = %d,br= %d ", f_res, br);
if (f_res || br == 0) break; /* 文件结束错误 */
f_res = f_write(&file_flash, buffer, br, &bw);
printf("f_res = %d,br= %d,bw=%d ", f_res, br, bw);
if (f_res || bw < br) break; /* 磁盘满错误 */
}
f_close(&file_sd);
f_close(&file_flash);
}[/mw_shl_code]
一周热门 更多>