1

EFSL を使用して SD カードを ATmega128 に接続しています。カードは初期化されますが、シリアル ポート出力で「不明なエラー 0xff(sandisk docs p5-13 を参照)」というエラーが表示されます。

それだけではありません。「sprintf」を使用して、シリアル ポートに表示する文字列を形成しました。不可解なことは、出力に「%02d」などの実際の書式設定文字も含まれていることです! アプリケーション自体がクラッシュしていると思います。ソースコードを提供できますが、大きすぎます。見たい人がいたらここにコピペします。

サンディスクのドキュメントp5-13もチェックしましたが、わかりません...

私はこれについて助けが必要になるでしょう...誰かがこれについて何か知っているなら教えてください...

4

2 に答える 2

1

私はたまたま ATmega8 用のコードを書き、シリアル ポートに出力する独自の printf 関数を書きました

SerWrite 関数は、0 で終わる unsigned char 配列をシリアル ポートに転送する関数です。

#define SIZE_STATUS 80

void ser_printf(const char *fmt, ...) {
    va_list args;
    uchar STATUS[SIZE_STATUS];
    va_start(args, fmt);
    uchar s = (uchar) vsnprintf(STATUS, SIZE_STATUS, fmt, args);
    va_end(args);
    SerWrite(STATUS, s); 
}
于 2009-07-20T13:47:35.123 に答える
1

方法はわかりませんが、別のカードを使用すると問題は解決しました。FAT32 フォーマットの 1/2 GB カードを 2 枚試しました。どちらも動作しませんでしたが、動作したカードは、FAT12 フォーマットの 16 MB キャノン カードでした。これを理解しようとしています。答えが見つかったら投稿します。とにかくありがとう...

于 2009-07-21T09:37:24.547 に答える