环境:ESP32-C3,使用了console、vfs组件
Code: Select all
/**
* @brief 缓存写入文件
* @param buf:存入缓存
* @param len:存入长度
* @note fclose+fopen可以立即存入文件
*/
void FS_SaveBufToFile(uint8_t *buf, int len)
{
if(RecFile.state == 01)
{
fwrite(buf, len, 1, RecFile.REC);
// fwrite(buf, 1, len, RecFile.REC);
// fflush(RecFile.REC);
// fsyncs(RecFile.REC);
// pwrite(RecFile.REC, buf, len, 0);
fclose(RecFile.REC);
// vTaskDelay(100 / portTICK_PERIOD_MS);
RecFile.REC = fopen(RecFile.path, "a+");
// fprintf(RecFile.REC, "%s", buf);
ESP_LOGI(TAG, "W");
}
return;
}
但是在尝试将数据写入TF卡时,发现数据不能立即写入到卡中。
无论是使用fprintf还是fwrite加fflush都无法立即写入,仅当使用fclose时才能写入数据。
目前只能不断的fclose+fopen,实在是太不优雅了 ;P