問題タブ [fatfs]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
2920 参照

c - STM32F407 - SDIO | FATFS - ファイルを SD カードに保存

問題 :

カードの有無にかかわらず、SD カードがマウントされています。SD カードにファイルを書き込めません。

環境 :

たくさんの本、ドキュメント、チュートリアルを読みましたが、それを機能させる方法が見つかりません。STM IDE デバッガーから、Python や Javascript で見られるリッチ エラーを取得できません。これが私が助けを求めている理由です。printf を除きますが、これは私の端末に対する個人的なコメントです。

技術仕様:

Mac OS - 10.15.4

CubeMX-5.6.1

STM32 IDE - SDIO / FATFS

STM32F407VG - ディスカバリー ボード

SDカードボード:

https://www.amazon.fr/Module-Lecteur-Carte-Double-Arduino/dp/B07MG4LZRW/ref=pd_rhf_se_p_img_12?_encoding=UTF8&psc=1&refRID=WJGA2Y1B8XK0H658VV8C

コード

Main.c


最初の投稿以来、私がやったこと。

問題は open 関数に由来します。を手に入れましたFR_DISK_ERR

デバッグ時、スクリプトは次の行に従います。

スクリプトは次の行で失敗しres = find_volume 、open 関数の最後にジャンプします。

open 関数によって要求される変数に関しては、次のようになります。

変数 fp とモードは問題ないと思います。間違いはconst TCHAR* path あなたが言ったようにについてかもしれません。

について調査しましたfind_volumeが、デバッグ時の動作をたどることができません... 関数が返す可能性のあるエラーの種類があります。

1 - セクター サイズを取得します (複数のセクター サイズの cfg のみ)

2 - ディスク I/O レイヤーでエラーが発生しました

3 - ビットマップの場所が想定されているかどうかを確認します (最初のクラスターで)

FATFS構成に関するスクリーンショットがありますが、FF_USE_LFN 設定して 1 Enable LFN with static working buffer on the BSS. Always NOT thread-safe. FR_DISK_ERR...

アイデアはありますか?

CubeMX FATFS 構成

最終的な答え:

find_volume 関数から、Exfat が有効になっていないことがわかりました。FF_USE_LFN

FR_NO_FILE_SYSTEM を取得しました。時間をかけて Web を調べたところ、STM32 の SDIO は DMA なしでは機能しないことがわかりました... また、CLK 以外にプルアップ抵抗をセットアップする必要があります。

この投稿は私の問題をすべて解決します:

https://community.st.com/s/question/0D50X00009XkWceSAF/stm32f411re-stm32cube-fatfs-sdio-sdcard-always-returns-frdiskerr

また、stm32 カードと外部 SD カード プロト ボードの間の配線をできるだけ短くしてください。

長い配線を使っていたのでかなり苦労しました。

0 投票する
1 に答える
55 参照

stm32 - 未知数のファイルの中から最新のファイルを見つけるプログラム

不明な数のファイルの中から最新のファイルを見つけるために、C と FATFS を使用して STM32 MCU 用のプログラムを作成する必要があります。ファイル名には作成日が含まれており、ファイル名の数字は「_」で区切られています。例: oil_sensor_22_07_20_13_15.csv

ファイルから日付と時刻を抽出し、それらの時差を計算するコードを作成しました。しかし、すべてのファイルの中から最新のファイルを見つける方法がわかりません。

2 つのファイル間の時間差を計算するコードと、2 つのファイルから最新のファイルを見つけるコードを含めます。

2 つのファイル名の時間差を計算する関数:

そして、最新のファイルを見つけるためのプログラム(プログラムは望ましい結果を与えません)。

0 投票する
0 に答える
61 参照

c# - FatFs の日付と時刻から DateTime

FatFs の日付と時刻 ( here ) を表す UInt16 値を C# DateTime オブジェクトに変換しようとしています。リンクに見られるように、fdate と ftime を表す 2 つの UInt16 値があります。

それらをC#でDateTimeに変換する最も簡単な方法は何ですか?