金牌会员
 
- 积分
- 1433
- 金钱
- 1433
- 注册时间
- 2020-5-12
- 在线时间
- 394 小时
|
10金钱
现在要求是创建一个bin文件,然后在bin文件里面写入2000字节。5秒写一下。初始化卡之后,刚刚开始还能60多毫秒完成一次。运行1个钟头后,完成一次需要1S多,看情况,越往下写时间会越长,不知道大家有什么好的方案解决。
这个是我写入的代码
uint8_t sd_write(char *WtireName, uint8_t *WriteBuf, uint32_t WriteLen)
{
uint8_t result = 0;
do{
result = f_open(&file, WtireName, FA_CREATE_ALWAYS | FA_WRITE); //打开文件
if(result != FR_OK)
{
break;
}
result = f_write(&file, WriteBuf, WriteLen, &bw); //打开/创建文件成功,向文件写入数据
if(result != FR_OK)
{
break;
}
}while(0);
f_close(&file);
return result;
}
测试代码:
TestCnt = 0;
sd_write((char *)s_SDDataBuf.FileName, s_SDDataBuf.DataBuf, s_SDDataBuf.DataBufLen);
printf("写入2000字节 耗时:%d\r\n",TestCnt);
TestCnt 在1ms中断里面自加。
|
|