中级会员
 
- 积分
- 214
- 金钱
- 214
- 注册时间
- 2018-4-10
- 在线时间
- 28 小时
|
用SD卡+fatfs文件系统保存图片,正常运行存储800张后出现找不到路径的错误,请各位指点
u8 SD_write_picture(u32 TXT_num,u8 *buf,uint16_t buf_num) //D′SD¿¨ÎļtÏμí3
{
u8 status;
char str[30];
sprintf(str,"0:/sensor/picture/pic%d.txt",TXT_num);
status = f_open(&fnew,str,FA_OPEN_ALWAYS | FA_WRITE );
if( status == 0 )
{
f_lseek(&fnew,fnew.fsize);
status=f_write(&fnew,buf,buf_num,&fnum);
if(status != FR_OK)
{
printf("doc writing faided! %d\r\n",status);
}
// else
// {
// printf("doc writing succeed! %d\r\n",status);
// }
f_close(&fnew); /* 2»Ôù¶áD′£¬1رÕÎļt */
return status;
}
else
{
printf("open or creat doc faided!\r\n");
f_close(&fnew); /* 2»Ôù¶áD′£¬1رÕÎļt */
return status;
}
}
u8 SD_read_picture(u32 TXT_num,u8 *buf,uint16_t buf_num,uint32_t buf_address) //D′SD¿¨ÎļtÏμí3
{
u8 status;
char str[30];
sprintf(str,"0:/sensor/picture/pic%d.txt",TXT_num);
status = f_open(&fnew,str,FA_OPEN_EXISTING | FA_READ );
if( status == 0 )
{
f_lseek(&fnew,buf_address);
status=f_read(&fnew,buf,buf_num,&fnum);
if(status != FR_OK)
{
printf("doc raeding faided! %d\r\n",status);
}
// else
// {
// printf("doc writing succeed! %d\r\n",status);
// }
f_close(&fnew); /* 2»Ôù¶áD′£¬1رÕÎļt */
return status;
}
else
{
printf("open or creat doc faided!\r\n");
f_close(&fnew); /* 2»Ôù¶áD′£¬1رÕÎļt */
return status;
}
}
以上为读写的函数;主函数逻辑是先将图片信息写入文件,分多次写入;然后在读文件传输,读文件前打开过一次文件得到总文件字节数
|
|