ESP32でFATシステムを扱うときの話
環境はESP32 + VScode + PlatformIO 上で Arduino フレームワークを使用
ESP32でFATシステムを扱う場合、大体の場合は
auto mounted = FFat.begin(false, "/storage", 20, "storage");
File f = FFat.open("/hoge.txt", FILE_READ);
File f2 = FFat.open("/hoge2.txt", FILE_WRITE);
ところが、このような書き方をするとオープンに失敗する・・・・事がある
んでそんな時は
File f2 = FFat.open("/storage/hoge2.txt", FILE_WRITE);
ファイル名のところにパーティション名を追加してやると上手くオープン出来てしまう
おかしいでしょ
そしてリードの時は
File f = FFat.open("/hoge2.txt", FILE_READ);
のままでリードオープン出来てしまう
理由は全くわからない
タイミングによって
File f2 = FFat.open("/storage/hoge2.txt", FILE_WRITE);
File f2 = FFat.open("/hoge2.txt", FILE_WRITE);
そんなのおかしいじゃんと言っても通用しない
なので、
// ファイルを開いて書き込み(上書き)
File f = FFat.open("/hoge2.txt", FILE_WRITE);
if(!f)
{
f = FFat.open("/storage/hoge2.txt", FILE_WRITE);
if (!f)
{
return -1;
}
}
かっちょわるー
誰か助けて
そんなわけでスマートな解決方法を誰か教えてください
どうもライトに関して起動後は一回目の書込は パーティション名あり、2回目以降はパーティション名無しだと上手くいくような・・・・気がする。
解決方法誰か教えてください
コメント
コメントを投稿